From e8b201e8d81cb3fad3eed9a454b336de843ebdd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E9=93=96=E6=B5=A9?= <1136734375@qq.com> Date: Mon, 8 May 2023 23:19:50 +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 --- .../20230508 \345\244\232\346\200\201.md" | 200 ++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 "05 \350\260\242\351\223\226\346\265\251/20230508 \345\244\232\346\200\201.md" diff --git "a/05 \350\260\242\351\223\226\346\265\251/20230508 \345\244\232\346\200\201.md" "b/05 \350\260\242\351\223\226\346\265\251/20230508 \345\244\232\346\200\201.md" new file mode 100644 index 0000000..0ab010d --- /dev/null +++ "b/05 \350\260\242\351\223\226\346\265\251/20230508 \345\244\232\346\200\201.md" @@ -0,0 +1,200 @@ +# 作业 + +## 多态练习 + +### 1、图形 + +(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 +//(1)父类Graphic图形 +// - public double area()方法:返回0.0 +// - public double perimeter()方法:返回0.0 +// - public String getInfo()方法,返回图形面积和图形周长 +public class Graphic { + public double area(){ + return 0.0; + } + public double perimeter(){ + return 0.0; + } + public String getInfo(){ + return "面积与周长"; + } +} + + +``` + +```java +//(2)子类Circle圆继承Graphic图形 +// - 包含属性:radius,属性私有化 +// - 包含get/set方法 +// - 重写area()求面积方法 +// - 重写perimeter()求周长方法 +// - 重写getInfo()方法,返回圆的半径,面积和周长 +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() { + double area = Math.PI * this.radius * this.radius; + return area; + } + + @Override + public double perimeter() { + double perimeter = 2 * Math.PI * this.radius; + return perimeter; + } + + @Override + public String getInfo() { + return "圆的半径为:"+radius+",面积为:"+area()+",周长为:"+perimeter()+"." ; + } +} + +``` + +```java +//(3)子类矩形Rectangle继承Graphic图形 +// - 包含属性:length、width,属性私有化 +// - 包含get/set方法 +// - 重写area()求面积方法 +// - 重写perimeter()求周长方法 +// - 重写getInfo()方法,返回长和宽,面积、周长信息 +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() { + double area = this.length * this.width; + return area; + } + + @Override + public double perimeter() { + double perimeter = 2 * (this.width + this.length); + return perimeter; + } + + @Override + public String getInfo() { + return "矩形长为:"+length+",矩形宽为:"+width+",矩形面积为:"+area()+",矩形周长为:"+perimeter()+"."; + } +} + +``` + +```java +//(4)在测试类中,新建一个比较图形面积的方法, +// 再建一个比较图形周长的方法, +// main方法中创建多个圆和矩形对象, +// 再调用方法比较他们的周长或面积。 +public class Test { + public static void main(String[] args) { + // 圆和圆 + Circle circle1 = new Circle(); + circle1.setRadius(2); + System.out.println(circle1.getInfo()); + Circle circle2 = new Circle(); + circle2.setRadius(3); + System.out.println(circle2.getInfo()); + bjArea(circle1.area(), circle2.area()); + bjPerimeter(circle1.perimeter(), circle2.perimeter()); + + //圆与矩形 + Circle circle3 = new Circle(); + circle3.setRadius(5); + System.out.println(circle3.getInfo()); + Rectangle rectangle1 = new Rectangle(); + rectangle1.setLength(5); + rectangle1.setWidth(3); + System.out.println(rectangle1.getInfo()); + bjArea(circle3.area(), rectangle1.area()); + bjPerimeter(circle3.perimeter(), rectangle1.perimeter()); + + //矩形与矩形 + Rectangle rectangle2 = new Rectangle(); + rectangle2.setLength(4); + rectangle2.setWidth(6); + System.out.println(rectangle2.getInfo()); + Rectangle rectangle3 = new Rectangle(); + rectangle3.setLength(5); + rectangle3.setWidth(5); + System.out.println(rectangle3.getInfo()); + bjArea(rectangle2.area(), rectangle3.area()); + bjPerimeter(rectangle2.perimeter(), rectangle3.perimeter()); + + + } + + public static void bjArea(double a,double b){ + if (a>b){ + System.out.println("图形一面积大于图形二面积"); + } else if (a==b) { + System.out.println("图形一面积等于图形二面积"); + }else { + System.out.println("图形一面积小于图形二面积"); + } + } + public static void bjPerimeter(double c,double d){ + if (c>d){ + System.out.println("图形一周长大于图形二周长"); + } else if (c==d) { + System.out.println("图形一周长等于图形二周长"); + }else { + System.out.println("图形一周长小于图形二周长"); + } + } +} + +``` + -- Gitee