From b9beb6935054d08cc7c7ad243c5aed6845db0800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?16=20=E9=98=99=E8=8B=8F=E6=96=87?= <2361635242@qq.com> Date: Mon, 8 May 2023 22:13:09 +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 --- ...32\346\200\201\344\275\234\344\270\232.md" | 195 ++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 "16 \351\230\231\350\213\217\346\226\207/20230508\345\244\232\346\200\201\344\275\234\344\270\232.md" diff --git "a/16 \351\230\231\350\213\217\346\226\207/20230508\345\244\232\346\200\201\344\275\234\344\270\232.md" "b/16 \351\230\231\350\213\217\346\226\207/20230508\345\244\232\346\200\201\344\275\234\344\270\232.md" new file mode 100644 index 0000000..1708abe --- /dev/null +++ "b/16 \351\230\231\350\213\217\346\226\207/20230508\345\244\232\346\200\201\344\275\234\344\270\232.md" @@ -0,0 +1,195 @@ +# 作业 + +```java +//测试类 +import java.util.Scanner; + +//## 多态练习 +// +//### 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方法中创建多个圆和矩形对象,再调用方法比较他们的周长或面积。 +public class Test { + public static void main(String[] args) { + //扫描器 + Scanner scanner = new Scanner(System.in); + + //圆1 + Circle circle = new Circle(); + System.out.println("请输入圆1的半径"); + circle.setRadius(scanner.nextDouble()); + //圆2 + Circle circle2 = new Circle(); + System.out.println("请输入圆2的半径"); + circle2.setRadius(scanner.nextDouble()); + //矩形1 + Rectangle rectangle = new Rectangle(); + System.out.println("请输入矩形1的长"); + rectangle.setLength(scanner.nextDouble()); + System.out.println("请输入矩形1的宽"); + rectangle.setWidth(scanner.nextDouble()); + //矩形2 + Rectangle rectangle2 = new Rectangle(); + System.out.println("请输入矩形2的长"); + rectangle2.setLength(scanner.nextDouble()); + System.out.println("请输入矩形2的宽"); + rectangle2.setWidth(scanner.nextDouble()); + + System.out.println("圆1:\n" + circle.getInfo()); + System.out.println("圆2:\n" + circle2.getInfo()); + System.out.println(); + System.out.println("矩形1:\n" + rectangle.getInfo()); + System.out.println("矩形2:\n" + rectangle2.getInfo()); + System.out.println(); + judgeAreaRectangle(rectangle.area(), rectangle2.area()); + judgeAreaCircle(circle.area(), circle2.area()); + judgePerimeterRectangle(rectangle.perimeter(), rectangle2.perimeter()); + judgePerimeterCircle(rectangle.perimeter(), rectangle2.perimeter()); + + } + + public static String judgeAreaRectangle(double e1, double e2) { + System.out.println("下面是两个矩形的面积比较"); + String result = e1 > e2 ? "\t矩形1大于矩形2\n" : "\t矩形2大于矩形1\n"; + System.out.println(result); + return null; + } + + public static String judgeAreaCircle(double e1, double e2) { + System.out.println("下面是两个圆的面积比较"); + String result = e1 > e2 ? "\t圆1大于圆2\n" : "\t圆2大于圆1\n"; + System.out.println(result); + return null; + } + + + public static String judgePerimeterCircle(double e1, double e2) { + System.out.println("下面是两个圆的周长比较"); + String result = e1 > e2 ? "\t圆1大于圆2\n" : "\t圆2大于圆1\n"; + System.out.println(result); + return null; + } + + public static String judgePerimeterRectangle(double e1, double e2) { + System.out.println("下面是两个矩形的周长比较"); + String result = e1 > e2 ? "\t矩形1大于矩形2\n" : "\t矩形2大于矩形1\n"; + System.out.println(result); + return null; + } +} + +//父类 图形 +public class Graphic { + public double area(){ + return 0.0; + } + public double perimeter(){ + return 0.0; + } + public String getInfo(){ + return "图形面积和图形周长"; + } +} + + +import java.text.DecimalFormat; +//子类 矩形类 +public class Rectangle extends Graphic { + public double length,width; + @Override + public double area() { + double area = width * length; + return area; + } + + @Override + public double perimeter() { + double perimeter = (length + width) * 2; + return perimeter; + } + + DecimalFormat df = new DecimalFormat("2"); + + @Override + public String getInfo() { + return "\t长:" + df.format(length) + + "\t宽:" + df.format(width) + + "\t周长:" + df.format(perimeter()) + + "\t面积" + df.format(area()); + } + + 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; + } +} + + +import java.text.DecimalFormat; +//圆形 +public class Circle extends Graphic { + public double radius; + DecimalFormat df = new DecimalFormat("#.##"); + @Override + public String getInfo() { + return "\t半径:" + radius + + "\t周长:" + df.format(perimeter()) + + "\t面积:" + df.format(area()); + } + + @Override + public double area() { + double area = Math.PI * this.radius * this.radius; + return area; + } + + public double getRadius() { + return radius; + } + + public void setRadius(double radius) { + this.radius = radius; + } + + @Override// 周长 + public double perimeter() { + double perimeter = 2 * radius * Math.PI; + return perimeter; + } +} + +``` + -- Gitee