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);
            }
    
        }
    
    }
  • 相关阅读:
    微人事项目-mybatis-持久层
    通过外键连接多个表
    springioc
    Redis 消息中间件 ServiceStack.Redis 轻量级
    深度数据对接 链接服务器 数据传输
    sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取
    sqlserver 索引优化 CPU占用过高 执行分析 服务器检查
    sql server 远程备份 bak 删除
    冒泡排序
    多线程 异步 beginInvoke EndInvoke 使用
  • 原文地址:https://www.cnblogs.com/xxy02160216/p/12929445.html
Copyright © 2011-2022 走看看