zoukankan      html  css  js  c++  java
  • 5.21

    package ffff;
    import java.util.Scanner;
    
    
        
    
    public    interface Shuiguo{
            
        }
    
        class Apple implements Shuiguo {
            public Apple() {
                System.out.println("创建了一个苹果对象");
            }
        }
    
        class bunana implements Shuiguo {
            public bunana () {
                System.out.println("创建了一个香蕉对象");
            }
        }
    
        class putao implements Shuiguo {
            public void putao() {
                System.out.println("创建了一个葡萄对象");
            }
        }
        
        class Gardener{
            public Shuiguo create() {
                Scanner input = new Scanner(System.in);
                String name = input.next();
                
                Shuiguo shuiguo = null;
                switch(name){
                case "苹果":
                    shuiguo = new Apple();
                    break;
                case "香蕉":
                    shuiguo = new bunana();
                    break;
                case "葡萄":
                    shuiguo = new putao();
                    break;
                }
                
                input.close();
                
                return shuiguo ;
            }
        }
    public class Test1 {
    
        public static void main(String[] args) {
            Gardener g = new Gardener();
            g.create();
    
        }
    
    }

    设计四个类,分别是:(知识点:抽象类及抽象方法)
    (1)Shape表示图形类,有面积属性area、周长属性per,颜色属性color,有两个构造方法(一个是默认的、一个是为颜色赋值的),还有3个抽象方法,分别是:getArea计算面积、getPer计算周长、showAll输出所有信息,还有一个求颜色的方法getColor。
    (2)2个子类:
    1)Rectangle表示矩形类,增加两个属性,Width表示长度、height表示宽度,重写getPer、getArea和showAll三个方法,另外又增加一个构造方法(一个是默认的、一个是为高度、宽度、颜色赋值的)。
    2)Circle表示圆类,增加1个属性,radius表示半径,重写getPer、getArea和showAll三个方法,另外又增加两个构造方法(为半径、颜色赋值的)。
     (3)一个测试类PolyDemo,在main方法中,声明创建每个子类的对象,并调用2个子类的showAll方法。

    package ffff;

    public abstract class Shape {
    protected int area;
    protected int per;
    protected String color;
    public Shape() {

    // TODO Auto-generated constructor stub
    }

    public Shape( String color) {

    this.color = color;
    }

    public abstract void getArea();
    public abstract void getPer();
    public abstract void showall();
    }

    package ffff;
    
    public class Rwctangle extends Shape{
      private int chang;
      private int kuan;
      
        public Rwctangle() {
        
        // TODO Auto-generated constructor stub
    }
    
    public Rwctangle(String color) {
        super(color);
        // TODO Auto-generated constructor stub
    }
    
        public Rwctangle(int chang, int kuan,String color) {
        super();
        this.chang = chang;
        this.kuan = kuan;
        this.color=color;
    }
    
        @Override
        public void getArea() {
            // TODO Auto-generated method stub
            System.out.println("面积为"+chang*kuan);
        }
    
        @Override
        public void getPer() {
            // TODO Auto-generated method stub
            System.out.println("周长为"+2*(chang+kuan));
        }
    
        @Override
        public void showall() {
            // TODO Auto-generated method stub
            System.out.println(chang+kuan+color);
        }
    
    }
    package ffff;
    
    
        public class Circle extends Shape {
            double radius;
    
            public Circle() {
    
            }
    
            public Circle(double radius, String color) {
                this.color = color;
                this.radius = radius;
            }
    
            @Override
            public void getArea() {
                // TODO Auto-generated method stub
                area=(int) (radius*radius*3.14);
            }
    
            @Override
            public void getPer() {
                // TODO Auto-generated method stub
                per=(int) (2*3.14*radius);
            }
    
            @Override
            public void showall() {
                // TODO Auto-generated method stub
                System.out.println("面积"+area+"周长"+per+"颜色"+color);
            }
    
        }
    package ffff;
    
    public class tese2 {
         Rwctangle r=new Rwctangle(5,5,"ss");
         Circle c= new Circle(4,"kk");
         r.getArea();
         r.getper();
         r.showall;
         
         c.getArea();
         c.getper();
         c.showall;
        
         }
    Cola公司的雇员分为以下若干类:(知识点:多态)

    (1) ColaEmployee :这是所有员工总的父类,属性:员工的姓名,员工的生日月份。

    方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100 元。
    (2) SalariedEmployee :     ColaEmployee 的子类,拿固定工资的员工。

    属性:月薪
    (3) HourlyEmployee :ColaEmployee 的子类,按小时拿工资的员工,每月工作超出160 小时的部分按照1.5 倍工资发放。

    属性:每小时的工资、每月工作的小时数
    (4) SalesEmployee :ColaEmployee 的子类,销售人员,工资由月销售额和提成率决定。

    属性:月销售额、提成率
    (5) 定义一个类Company,在该类中写一个方法,调用该方法可以打印出某月某个员工的工资数额,写一个测试类TestCompany,在main方法,把若干各种类型的员工放在一个ColaEmployee 数组里,并单元出数组中每个员工当月的工资。
    package
    ffff; public class ColaEmployee { String name; int month; public ColaEmployee() { super(); // TODO Auto-generated constructor stub } public ColaEmployee(String name, int month) { super(); this.name = name; this.month = month; } public double getSalary(int mouth){ return 0; } }
    package ffff;
    
    public class SalariedEmployee extends ColaEmployee {
            double salary;
    
            
    
            public SalariedEmployee(String name, int month,double salary) {
                super(name, month);
                this.salary=salary;
                // TODO Auto-generated constructor stub
            }
            public double getSalary(int mouth){
                if(super.month==month){
                    
                return salary+1000;
                }
                else{
                    return salary;
                }
            }
    }
    package ffff;
    
    public class HourlyEmployee extends ColaEmployee{
           private int   hoursalary;
           private int hour;
        
        public HourlyEmployee(String name, int month,int hoursalary,int hour) {
            super(name, month);
            this.hoursalary=hoursalary;
            this.hour=hour;
            
            // TODO Auto-generated constructor stub
        }
        public double getSalary(int mouth){
            if(super.month==mouth){
                if(hour>160){
                    return hoursalary*160+hoursalary*(hour-160)*1.5+100;
                }
            }
            else{
                if(hour<160){
                    return hoursalary*hour;
                }
            }
            return mouth;
            
        }
           
    }
    package ffff;
    
    public class SalesEmployee extends ColaEmployee {
        
    
        
            private int monthSales;
            private double royaltyRate;
            public SalesEmployee( String name,int mouth,int monthSales, double royaltyRate) {
                super(name,mouth);
                this.monthSales = monthSales;
                this.royaltyRate = royaltyRate;
            } 
            public double getSalary(int month) {
                   if(super.month == month) {
                       return monthSales * royaltyRate + 100;
                   }else {
                       return monthSales * royaltyRate;
                   }
               }    
         
          
        }
    package ffff;
    
    public class Company {
          public void getSalary(ColaEmployee c,int month) {
                System.out.println(c.name + "在" + month + 
                                "月的月薪是: " + c.getSalary(month)+"元");
           }
    }
    package ffff;
    
    public class Test4 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            ColaEmployee[] cel = {
                    new SalariedEmployee("zhangsan", 5, 10000),
                    new HourlyEmployee("lisi", 7, 100, 300),
                    new SalesEmployee("wangwu", 3, 8000, 0.6)
                    };
            for (int i = 0; i < cel.length; i++) {
                new Company().getSalary(cel[i],5);
            }
    
        }
    
    }
  • 相关阅读:
    4-MSP430定时器_定时器中断
    关于STM32的外部引脚中断的问题
    关于stm32的正交解码
    红外接收控制灯亮灭
    mack pro常用快捷键
    liunx操作系统安装<一>
    支付宝架构师:从工程师到架构师的成长之路
    maven之setting.xml的配置详解
    分布式之《保证分布式系统数据一致性的6种解决方案》
    Eclipse中jsp、js文件编辑时,卡死现象解决汇总
  • 原文地址:https://www.cnblogs.com/xxy02160216/p/12929445.html
Copyright © 2011-2022 走看看