From 2060dab0746ea0b37117e6c1810c857cd9903b9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E4=BC=9F=E5=B1=B1?= <2609838563@qq.com> Date: Sat, 13 May 2023 11:52:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20230513 \345\244\232\346\200\201.md" | 337 ++++++++++++++++++ 1 file changed, 337 insertions(+) create mode 100644 "39 \345\247\234\344\274\237\345\261\261/20230513 \345\244\232\346\200\201.md" diff --git "a/39 \345\247\234\344\274\237\345\261\261/20230513 \345\244\232\346\200\201.md" "b/39 \345\247\234\344\274\237\345\261\261/20230513 \345\244\232\346\200\201.md" new file mode 100644 index 0000000..c14e6c7 --- /dev/null +++ "b/39 \345\247\234\344\274\237\345\261\261/20230513 \345\244\232\346\200\201.md" @@ -0,0 +1,337 @@ +``` +- 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 +public class Graphic { + public double area(){ + return 0.0; + } + public double perimeter(){ + return 0.0; + } + public String getInfo(){ + return "面积:"+area()+"周长:"+perimeter(); + } +} +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 (length+width)*2; + } + @Override + public String getInfo() { + return "长"+length+"宽"+width+super.getInfo(); + } +} +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*radius*2; + } + @Override + public String getInfo() { + return "半径为:"+radius+super.getInfo(); + } +} +class Text { + public static void main(String[] args) { + Circle c1 = new Circle(); + c1.setRadius(2); + Circle c2 = new Circle(); + c2.setRadius(5); + Rectangle r1 = new Rectangle(); + r1.setLength(4); + r1.setWidth(5); + SpecificArea(c1, c2); + SpecificArea(c1, r1); + SpecificPerimeter(c1, c2); + SpecificPerimeter(c1, r1); + } + public static void SpecificArea(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 SpecificPerimeter(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("前者小"); + } + } +} + +``` + +``` +(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 +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(); + } +} +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+"日"; + } +} +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(); + } +} +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; + } +} +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; + } +} +``` + -- Gitee