zoukankan      html  css  js  c++  java
  • 第十二周上机。

    package lianxi;
    /*2、设计四个类,分别是:(知识点:抽象类及抽象方法)
    (1)Shape表示图形类,有面积属性area、周长属性per,颜色属性color,有两个构造方法(一个是默认的、一个是为颜色赋值的),还有3个抽象方法,分别是:getArea计算面积、getPer计算周长、showAll输出所有信息,还有一个求颜色的方法getColor。
    
     */
    public abstract class ja {
        protected double area;
        protected double per;
        protected String color;
        public Shape() {
        }
    
        public Shape(String color) {
            this.color = color;
        }
         public abstract void getArea();
    
         public abstract void getPer();
    
         public abstract void showAll();
            
    }

    package lianxi;
    
    public class Cbwf extends ja {
    
    
               double width;
                double height;
                public Cbwf() {
                }
                public Cbwf(String color, double width, double height) {
                    super(color);
                    this.width = width;
                    this.height = height;
                    this.color=color;
                }
                public void getPer() {
                    per = (width+height)*2;
                }
                public void getArea() {
                    area =(width*height);
                }
                public void showAll() {
                    System.out.println("矩形面积为:" + area + ",周长为:" + per + ",颜色:" + color);
        }
    
    }

    package lianxi;
    /*2)Circle表示圆类,增加1个属性,radius表示半径,重写getPer、getArea和showAll三个方法,另外又增加两个构造方法(为半径、颜色赋值的)。*/
    public class Circle extends ja {
        int radius;
    
        public Circle(int radius,String color) {
            super(color);
            this.radius = radius;
            this.color=color;
        }
    
        public void getPer() {
            per = radius*2*3.14;
        }
        public void getArea() {
            area =radius*radius*3.14;
        }
        public void showAll() {
            System.out.println("圆形面积为:" + area + ",周长为:" + per + ",颜色:" + color);
        }
        
    }

    package lianxi;
    public class Polydamo {
        public static void main(String[] args) {
            Shape r1= new Rectangle("蓝色",5.0,6.0);
            Shape c1 = new Circle(5,"白色");
            r1.getArea();
            r1.getPer();
            c1.getArea();
            c1.getPer();
            r1.showAll();
            c1.showAll();
        }
    }

    package lianxi;
    /*Cola公司的雇员分为以下若干类:(知识点:多态)
    
    (1) ColaEmployee :这是所有员工总的父类,属性:员工的姓名,员工的生日月份。
    
    方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100 元。*/
    public class ja {
    
    
            String name;
            int month;
    
            public Jhd() {
    
            }
    
            public Jhd(String name, int month) {
                super();
                this.name = name;
                this.month = month;
            }
    
            public double getSalary(int month) {
                return 0;
        }
    
    }

    package lianxi;
    public class Hgc extends ja {
    
    
               double salary;
                public Hgc() {
                    super();
                }
                public Hgc(String name, int month,int salary) {
                    super(name,month);
                    this.salary = salary;
                }
                public double getSalary(int month) {
                    if (super.month == month) {
                        return salary + 100;
                    }else {
                        return salary;
                    }
        }
    
    }

    package lianxi;
    /*(3) HourlyEmployee :ColaEmployee 的子类,按小时拿工资的员工,每月工作超出160 小时的部分按照1.5 倍工资发放
     * 属性:每小时的工资、每月工作的小时数。*/
    public class Ntd extends ja {
    
            private int hourlysalary;
            private int hourlytime;
    
            public Ntd() {
                super();
            }
    
            public Ntd(String name, int month,int hourlytime,int hourlysalary) {
                super(name, month);
                this.hourlytime=hourlytime;
                this.hourlysalary=hourlysalary;
            }
    
            public double getHourlysalary(int month) {
                 if (super.month == month) {
                        if (hourlytime > 160) {
                            return hourlysalary * 160 + hourlysalary * (hourlytime - 160) * 1.5 + 100;
                        } else {
                            return hourlysalary * hourlytime + 100;
                        }
                    } else {
                        if (hourlytime > 160) {
                            return hourlysalary * 160 + hourlysalary * (hourlytime - 160) * 1.5;
                        } else {
                            return hourlysalary * hourlytime;
                        }
                    }
        }
    
    }

    package lianxi;
    /*(4) SalesEmployee :ColaEmployee 的子类,销售人员,工资由月销售额和提成率决定。
     * 属性:月销售额、提成率*/
    public class Kbf extends ja {
    
    
              private int monthSales;// 月销售额
                private double royaltyRate;// 提成率
             
                public Kbf(String name, int month, int monthSales, double royaltyRate) {
                    super(name, month);
                    this.monthSales = monthSales;
                    this.royaltyRate = royaltyRate;
                }
             
                public double getSalary(int month) {
                    if (super.month == month) {
                        return monthSales * royaltyRate + 100;
                    } else {
                        return monthSales * royaltyRate;
                    }
        }
    
    }


    package lianxi;
    /*(5) 定义一个类Company,在该类中写一个方法,调用该方法可以打印出某月某个员工的工资数额*/
    public class ja {
    
            public void getSalary(Jhd c,int month) {
                System.out.println(c.name + "在" + month + "月的月薪为" + c.getSalary(month)+"元");
        }
    
    }
    
    
     
    
    
     
    package lianxi;
    /*写一个测试类TestCompany,在main方法,把若干各种类型的员工放在一个ColaEmployee 数组里,并单元出数组中每个员工当月的工资*/
    public class ja {
    
    
             public static void main(String[] args) {
                    // TODO Auto-generated method stub
                     Jhd[] all = {
                                new Hgc("田某", 5, 9000),//name,month,月薪
                                new Ntd("马某", 5, 10, 30),//name,month,时薪,小时数
                                new Kbf("田某某", 3, 50000, 0.3)//name,month,月销售额,提成率
                                };
                        for (int i = 0; i < all.length; i++) {
                            new Bja().getSalary(all[i],5);
                        }
        }
    
    }
     
     
    
    
    package fruit;
    
        public interface fruit {//提供接口
    
        }
    
    
     
    package fruit;
    
    public class apple implements fruit{
            public apple(){
            System.out.println("创建了一个苹果");
            }
            }
     
    
    
     
    package fruit;
    
    public class banana implements fruit{
    public banana(){
    System.out.println("创建了一个香蕉");
    }
    }
     
    
    
     
    package fruit;
    
    import java.util.Scanner;
    
    public class gardener {
        public fruit create() {
            System.out.println("输入:");
            Scanner input = new Scanner(System.in);
            String name = input.next();
            
            fruit fruit = null;
            switch(name){
            case "苹果":
                fruit = new apple();
                break;
            case "葡萄":
                fruit = new grape();
                break;
            case "香蕉":
                fruit = new banana();
                break;
            }
            
            input.close();
            
            return fruit;
        }
    }
     
    
    
     
    package fruit;
    
    public class grape implements fruit{
    public grape(){
    System.out.println("创建了一个葡萄");
    }
    }

    
    
    package fruit;
    
    public class fruittest {
        public static void main(String[] args) {
            gardener g = new gardener();
            g.create();
    
        }}
     
    
    
     
     
     





     
     
  • 相关阅读:
    openldap
    Java实现 洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…
    Java实现 洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P1567 统计天数
    Java实现 洛谷 P1567 统计天数
  • 原文地址:https://www.cnblogs.com/Mfb-/p/12930203.html
Copyright © 2011-2022 走看看