• 5.21上机作业


    1、设计四个类,分别是:(知识点:抽象类及抽象方法)

    (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 school4;
    
    public class Shape {
        int area;
        int per;
        String color;
        public int getArea(int a,int b) {
            return area=a*b;
        }
        public int getPer(int a,int b) {
            return per=(a+b)*2;
        }
        public String getColor(String c) {
            return color=c;
        }
        public void showAll() {
            System.out.println("图形的面积是:"+area+"周长是:"+per+"颜色是:"+color);
        }
        
        
    }
    package school4;
    
    public class Rectangle extends Shape{
        int Width;
        int Height;
        public int getPer(int Width,int Height) {
            return per=(Height+Width)*2;
        }
        public int getArea(int Width,int Height) {
            return area=Height*Width;
        }
        public String getColor(String c) {
            return color=c;
        }
        public void getShowall() {
            System.out.println("长是:"+Height+"宽是:"+Width+"图形的面积是:"+area+"周长是:"+per+"颜色是:"+color);
        }
        
    }
    package school4;
    
    public class Circle extends Shape{
        int radius;
        public int getPer(int radius) {
            return per=3*2*radius;
        }
        public int getArea(int radius) {
            return area=3*radius*radius;
        }
        public String getColor(String c) {
            return color=c;
        }
        public void getShowall() {
            System.out.println("半径是:"+radius+"图形的面积是:"+area+"周长是:"+per+"颜色是:"+color);
        }
    }
    package school4;
    
    public class PolyDemo {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Shape s=new Shape();
            s.getArea(5, 7);
            s.getPer(5, 7);
            s.getColor("blue");
            s.showAll();
            Rectangle r=new Rectangle();
            r.Width=10;
            r.Height=8;
            r.getArea(10, 8);
            r.getPer(10, 8);
            r.getColor("red");
            r.getShowall();
            Circle c=new Circle();
            c.radius=5;
            c.getArea(5);
            c.getColor("yellow");
            c.getPer(5);
            c.getShowall();
            
        }
    
    }

    2、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 school4;
    
    public class ColaEmployee {
        String name;
        int bmonth;
        public void getSalary(int month) {
            System.out.println("月份:"+month);
        }
    }
    package school4;
    
    public class SalariedEmployee extends ColaEmployee{
        int mmoney;
        public void getsal(String name,int month,int bmonth, int mmoney) {
            if(month==bmonth) {
                System.out.println(name+"工资是:"+(mmoney+100));
            }else {
                System.out.println(name+"工资是:"+mmoney);
            }
            
        }
    }
    package school4;
    
    public class HourlyEmployee extends  ColaEmployee{
        public void hsal(String name ,int hoursal,int mhour,int bmonth, int month){
            if(month==bmonth) {
                if(mhour<=160 && mhour>0) {
                    System.out.println(name+"工资是"+(hoursal*mhour)+100);
                }else {
                    System.out.println(name+"工资是"+(((mhour-160)*hoursal+(hoursal*160))+100));
                }
            }else {
                if(mhour<=160 && mhour>0) {
                    System.out.println(name+"工资是"+(hoursal*mhour));
                    }else {
                        System.out.println(name+"工资是"+(((mhour-160)*hoursal+(hoursal*160))));
                    }
            }    
        }
    }
    package school4;
    
    public class SalesEmployee extends ColaEmployee {
        int monthxiaoshou;
        int tichenglv;
        public void xiaoshouSalar(String name,int mxiaoshou,int tichenglv,int bmonth,int month) {
            if(month==bmonth) {
                System.out.println(name+"工资是"+(mxiaoshou*(1+tichenglv)+100));
            }else {
                System.out.println(name+"工资是"+(mxiaoshou*(1+tichenglv)));
            }
        }
    }
    package school4;
    
    public class Company {
         public void method(ColaEmployee a) {
                if(a instanceof HourlyEmployee) {
                    HourlyEmployee H =(HourlyEmployee)a;
                    H.hsal("张三",45,175,6,6);
                }else if(a instanceof SalariedEmployee) {
                    SalariedEmployee c=(SalariedEmployee)a;
                    c.getsal("李四",7,7,1000);
                }else if(a instanceof SalesEmployee) {
                    SalesEmployee b = (SalesEmployee)a;
                    b.xiaoshouSalar("王五",2000,3,5,6);
                }
            }
    }

    3、利用接口实现动态的创建对象:(知识点:接口 )

    (1)创建4个类

    1苹果

    2香蕉

    3葡萄

    4园丁

    (2)在三种水果的构造方法中打印一句话.

    以苹果类为例

    class apple

    {

    public apple()

    {

    System.out.println(“创建了一个苹果类的对象”);

    }

    }

    (3)类图如下:

    (4)要求从控制台输入一个字符串,根据字符串的值来判断创建三种水果中哪个类的对象。

    运行结果如图:

    package school4;
    
    public class Apple implements Fruit {
        public Apple() {
            System.out.println("创建了一个苹果对象");
        }
    }
    package school4;
    
    public class Banana implements Fruit{
        public Banana() {
            System.out.println("创建一个香蕉类的对象");
        }
    }
    package school4;
    
    public class Grape implements Fruit{
        public Grape() {
            System.out.println("创建一个葡萄类的对象");
        }
    
    }
    package school4;
    
    import java.util.Scanner;
    
    public interface Fruit {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            @SuppressWarnings("resource")
            Scanner s=new Scanner(System.in);
            System.out.println("请输入水果名字:");
            String a=s.next();
            if(a.equals("苹果")) {
                new Apple();
            }else if(a.equals("香蕉")){
                new Banana();
            }else if(a.equals("葡萄")){
                new Grape();
            }else {
                System.out.println("无此类水果");
            }
        }
    
    }
  • 相关阅读:
    Swift入门篇-Hello World
    Swift入门篇-swift简介
    Minecraft 插件 world edit 的cs 命令
    搭建本地MAVEN NEXUS 服务
    MC java 远程调试 plugin 开发
    企业内部从零开始安装docker hadoop 提纲
    javascript 命令方式 测试例子
    ca des key crt scr
    JSF 抽象和实现例子 (函数和属性)
    form 上传 html 代码
  • 原文地址:https://www.cnblogs.com/lqh123456/p/12929939.html
Copyright © 2020-2023  润新知