第十次作业

package xingzhuang;

public abstract class Shape {

 

double area;

double per;

String color;

public Shape() {

super();

}

public Shape(String color) {

super();

this.color = color;

}

public abstract double getArea();

public abstract double getPer();

public abstract void showAll();

public String getColor() {

return color;

}

}

//

package xingzhuang;

public class Rectangle extends Shape {

double Width;

double height;

public Rectangle() {

super();

}

public Rectangle(double width, double height,String color) {

super(color);

Width = width;

this.height = height;

}

public double getArea() {

double Area=Width*height;

return Area ;

}

public double getPer()

{

double Per=2*Width+2*height;

return Per;

}

public void showAll()

{

System.out.println("长:"+height);

System.out.println("宽:"+Width);

System.out.println("面积:"+getArea());

System.out.println("周长:"+getPer());

System.out.println("颜色"+color);

}

 

}

//

package xingzhuang;

public class Circle extends Shape{

 

public Circle() {

super();

}

 

public Circle(double radius,String color) {

super(color);

this.radius = radius;

}

double radius;

 

public double getArea() {

double Area=radius*radius*3.14;

return Area;

}

public double getPer()

{

double Per=2*3.14*radius;

return Per;

}

public void showAll()

{

System.out.println("半径:"+radius);

System.out.println("面积:"+getArea());

System.out.println("周长:"+getPer());

System.out.println("颜色"+color);

}

}

//

package xingzhuang;

public class menu {

public static void main(String[] args) {

// TODO Auto-generated method stub

Shape test_1=new Circle(2,"黑的");

Shape test_2=new Rectangle(5,5,"白的");

test_1.showAll();

test_2.showAll();

}

}

4、 Cola 公司的雇员分为以下若干类:(知识点:多态)[必做

题]

·4.1 ColaEmployee :这是所有员工总的父类,属性:员工的

姓名,员工的生日月份。方法: getSalary ( int month )根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励

100元。

4.2 SalariedEmployee :ColaEmployee 的子类,拿固定工

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

·4.4 SalesEmployee : ColaEmployee 的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率.4.5定义一个类 Company ,在该类中写一个方法,调用该方法可以打印出某月某个员工的工资数额,写一个测试类 TestCompany ,在 main 方法,把若干各种类型的员工在一个 ColaEmployee 数组里,并单元出数组中每个员工当月的工资。

资的员工。属性:月薪

//ColaEmployee类

package zxc;

 

public abstract class ColaEmployee {

String name;

int birthday;

public ColaEmployee() {

super();

}

public ColaEmployee(String name, int birthday) {

super();

this.name = name;

this.birthday = birthday;

}

public abstract double getSalary(int month);

 

}

 

 

//SalariedEmployee类

package zxc;

 

public class SalariedEmployee extends ColaEmployee{

double Salary;

 

public SalariedEmployee() {

super();

}

 

public SalariedEmployee(String name, int birthday,double salary) {

super(name,birthday);

Salary = salary;

}

 

public double getSalary(int month) {

if(birthday==month) {

Salary = Salary+100;

 

}

return Salary;

}

}

//HourlyEmployee类

package zxc;

 

public class HourlyEmployee extends ColaEmployee{

 

double Hour_Salary;

double Month_hour;

public HourlyEmployee() {

super();

}

public HourlyEmployee(String name, int birthday,double hour_Salary, double month_hour) {

super(name,birthday);

Hour_Salary = hour_Salary;

Month_hour = month_hour;

}

public double getSalary(int month) {

double Salary=0;

if(Month_hour>160) {

Salary=Hour_Salary*Month_hour+(Month_hour-160)*Hour_Salary*1.5;

}else if(Month_hour<=160){

Salary=Hour_Salary*Month_hour;

}

if(birthday==month)

        {

            Salary=Salary+100;

        }

        return Salary;

    }

}

 

//SalesEmployee类

package zxc;

 

public class SalesEmployee extends ColaEmployee{

int Moon_Sales;

    double Commission;

    

    public SalesEmployee() {

        super();

    }

 

    public SalesEmployee(String name, int birthday, int moon_Sales, double commission) {

        super(name, birthday);

        Moon_Sales = moon_Sales;

        Commission = commission;

    }

 

    public double getSalary(int month) {

        double Salary=0;

        Salary=Moon_Sales*Commission;

        if(birthday==month)

        {

            Salary=Salary+100;

        }

        return Salary;

    }

    

}

 

//Company类

package zxc;

 

public class Company {

public void ShowSalary(ColaEmployee test,int month)

    {

        System.out.println("员工:"+test.name+"\n月份:"+month+"\n工资状况:"+test.getSalary(month));

    }

}

 

//测试类

package zxc;

 

public class TestCompany {

public static void main(String[] args) {

 ColaEmployee[] test=new ColaEmployee[3];

     test[0]=new SalariedEmployee("cc",60,4000);

     test[1]=new HourlyEmployee("xx",6,300,800);

     test[2]=new SalesEmployee("zz",12,45000,0.2);

     Company show_fun=new Company();

     show_fun.ShowSalary(test[0], 5);

     show_fun.ShowSalary(test[1], 2);

     show_fun.ShowSalary(test[1], 3);

     show_fun.ShowSalary(test[2], 9);

     show_fun.ShowSalary(test[2], 10);

}

}

 

 

posted @ 2023-07-05 15:50  王欣彤  阅读(6)  评论(0编辑  收藏  举报