diff --git "a/17 \351\203\221\347\216\256\351\224\213/20230510.md" "b/17 \351\203\221\347\216\256\351\224\213/20230510.md" new file mode 100644 index 0000000000000000000000000000000000000000..58137ce359b769f108da10eb40414f66f60a094e --- /dev/null +++ "b/17 \351\203\221\347\216\256\351\224\213/20230510.md" @@ -0,0 +1,366 @@ +(1)父类Graphic图形 + +- public double area()方法:返回0.0 +- public double perimeter()方法:返回0.0 +- public String getInfo()方法,返回图形面积和图形周长 + +(2)子类Circle圆继承Graphic图形 + +- 包含属性:radius,属性私有化 +- 包含get/set方法 +- 重写area()求面积方法 +- 重写perimeter()求周长方法 +- 重写getInfo()方法,返回圆的半径,面积和周长 + +(3)子类矩形Rectangle继承Graphic图形 + +- 包含属性:length、width,属性私有化 +- 包含get/set方法 +- 重写area()求面积方法 +- 重写perimeter()求周长方法 +- 重写getInfo()方法,返回长和宽,面积、周长信息 + +(4)在测试类中,新建一个比较图形面积的方法,再建一个比较图形周长的方法,main方法中创建多个圆和矩形对象,再调用方法比较他们的周长或面积。 + +```java + +//父类Graphic图形 +public class Graphic { + public double area() { + return 0.0; + } + + public double perimeter() { + return 0.0; + } + + public String getInfo() { + return "面积是" + area() + "周长是" + perimeter(); + } +} + +//子类Circle圆继承Graphic图形 +public class Circle extends Graphic{ + private double radius; + + public double getRadius() { + return radius; + } + + public void setRadius(double radius) { + this.radius = radius; + } + + @Override + public double area() { + return Math.PI*radius*radius; + } + + @Override + public double perimeter() { + return Math.PI*2*radius; + } + + @Override + public String getInfo() { + return "圆的半径是"+radius+"面积是" + area() + "周长是" + perimeter(); + } +} + +//子类矩形Rectangle继承Graphic图形 +public class Rectangle extends Graphic{ + private double length; + private double width; + + public double getLength() { + return length; + } + + public void setLength(double length) { + this.length = length; + } + + public double getWidth() { + return width; + } + + public void setWidth(double width) { + this.width = width; + } + + @Override + public double area() { + return length*width; + } + + @Override + public double perimeter() { + return 2*(length+width); + } + + @Override + public String getInfo() { + return "长和宽分别为"+length+","+width+"面积是" + area() + "周长是" + perimeter(); + } +} + +//测试类 +public class Text { + public static void main(String[] args) { + Circle c1 = new Circle(); + c1.setRadius(4); + Circle c2 = new Circle(); + c2.setRadius(2); + Rectangle r1 = new Rectangle(); + r1.setLength(2); + r1.setWidth(4); + bmj(c1,c2); + bmj(c1,r1); + bzc(c1,c2); + bzc(c1,r1); + } + public static void bmj(Graphic s1,Graphic s2){ + if (s1.area()==s2.area()){ + System.out.println("面积相等"); + } else if (s1.area() > s2.area()) { + System.out.println("前者大"); + }else if (s1.area() < s2.area()) { + System.out.println("前者小"); + } + } + + public static void bzc(Graphic s1,Graphic s2){ + if (s1.perimeter()==s2.perimeter()){ + System.out.println("面积相等"); + } else if (s1.perimeter() > s2.perimeter()) { + System.out.println("前者大"); + }else if (s1.perimeter() < s2.perimeter()) { + System.out.println("前者小"); + } + } +} +``` + +2、员工 + +(1)声明一个父类Employee员工类型, + +- 有姓名属性,私有化,提供get/set方法 +- public double earning():代表实发工资,返回0.0 +- public String getInfo():显示姓名和实发工资 + +(2)声明MyDate类型 + +- 有int类型的年,月,日属性,私有化,提供get/set方法 +- 提供public String getInfo(),返回“xxxx年xx月xx日” + +(3)声明一个子类SalaryEmployee正式工,继承父类Employee + +- 增加属性,double类型的薪资,MyDate类型的出生日期,私有化,提供get/set方法 +- 重写方法,public double earning()返回实发工资, 实发工资 = 薪资 +- 重写方法,public String getInfo():显示姓名和实发工资、生日 + +(4)声明一个子类HourEmployee小时工,继承父类Employee + +- 有属性,double类型的工作小时数和每小时多少钱 +- 重写方法,public double earning()返回实发工资, 实发工资 = 每小时多少钱 * 小时数 +- 重写方法,public String getInfo():显示姓名和实发工资,时薪,工作小时数 + +(5)声明一个子类Manager经理,继承SalaryEmployee + +- 增加属性:奖金比例,私有化,提供get/set方法 +- 重写方法,public double earning()返回实发工资, 实发工资 = 薪资 *(1+奖金比例) +- 重写方法,public String getInfo():显示姓名和实发工资,生日,奖金比例 + +(6)声明一个员工数组,存储各种员工,你现在是人事,遍历查看每个人的详细信息,并统计实发工资总额,通知财务准备资金。 + +(7)从键盘输入当期月份值,如果他是正式工(包括SalaryEmployee和Manager),并且是本月生日的,通知领取生日礼物 + +```java + + +//声明一个父类Employee员工类型 +public class Employee { + private String name; + + public Employee() { + } + + public Employee(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + public double earning(){ + return 0.0; + } + + public String getInfo(){ + return "姓名是"+name+"实发工资是"+earning(); + } +} + +//声明MyDate类型 +public class MyDate { + private int year; + private int month; + private int date; + + public MyDate() { + } + + public MyDate(int year, int month, int date) { + this.year = year; + this.month = month; + this.date = date; + } + + public int getYear() { + return year; + } + + public void setYear(int year) { + this.year = year; + } + + public int getMonth() { + return month; + } + + public void setMonth(int month) { + this.month = month; + } + + public int getDate() { + return date; + } + + public void setDate(int date) { + this.date = date; + } + + public String getInfo(){ + return year+"年"+month+"月"+date+"日"; + } +} + +//声明一个子类SalaryEmployee正式工,继承父类Employee +public class SalaryEmployee extends Employee{ + private double salary; + private MyDate birthday; + + public SalaryEmployee() { + } + + public SalaryEmployee(String name, double salary, MyDate birthday) { + super(name); + this.salary = salary; + this.birthday = birthday; + } + + public double getSalary() { + return salary; + } + + public void setSalary(double salary) { + this.salary = salary; + } + + public MyDate getBirthday() { + return birthday; + } + + public void setBirthday(MyDate birthday) { + this.birthday = birthday; + } + + @Override + public double earning() { + return salary; + } + + @Override + public String getInfo() { + return "姓名是"+getName()+"实发工资是"+earning()+"生日是"+getBirthday().getInfo(); + } +} + +//声明一个子类HourEmployee小时工,继承父类Employee +public class HourEmployee extends Employee{ + private double hour; + private double wage; + + public HourEmployee() { + } + + public HourEmployee(String name, double hour, double wage) { + super(name); + this.hour = hour; + this.wage = wage; + } + + public double getHour() { + return hour; + } + + public void setHour(double hour) { + this.hour = hour; + } + + public double getWage() { + return wage; + } + + public void setWage(double wage) { + this.wage = wage; + } + + @Override + public double earning() { + return hour*wage; + } + + @Override + public String getInfo() { + return "姓名是"+getName()+"实发工资是"+earning()+"时薪"+wage+"工作小时数"+hour; + } +} + +//声明一个子类Manager经理,继承SalaryEmployee +public class Manager extends SalaryEmployee{ + private double bonus; + + public Manager() { + } + + public Manager(String name, double salary, MyDate birthday, double bonus) { + super(name, salary, birthday); + this.bonus = bonus; + } + + public double getBonus() { + return bonus; + } + + public void setBonus(double bonus) { + this.bonus = bonus; + } + + @Override + public double earning() { + return getSalary()*(1+bonus); + } + + @Override + public String getInfo() { + return "姓名是"+getName()+"实发工资是"+earning()+"生日是"+getBirthday().getInfo()+"奖金比例"+bonus; + } +} +``` +