Browse Source

提交w4图形面积计算器作业

main
Wangyifei 2 weeks ago
parent
commit
82ebde1363
  1. 35
      w4/Circle.java
  2. 20
      w4/Main.java
  3. 30
      w4/README.md
  4. 43
      w4/Rectangle.java
  5. 10
      w4/Shape.java
  6. 12
      w4/ShapeUtil.java
  7. 43
      w4/Triangle.java
  8. BIN
      w4/实验报告.docx
  9. BIN
      w4/运行输出.jpg

35
w4/Circle.java

@ -0,0 +1,35 @@
/**
* 圆形类继承Shape实现面积计算
*/
public class Circle extends Shape {
// 圆的半径
private double radius;
// π常量
private static final double PI = 3.1415926;
/**
* 无参构造
*/
public Circle() {}
/**
* 带参构造初始化半径
* @param radius 半径
*/
public Circle(double radius) {
this.radius = radius;
}
/**
* 实现父类抽象方法计算圆面积πr²
* @return 圆的面积
*/
@Override
public double getArea() {
return PI * radius * radius;
}
// Getter和Setter
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
}

20
w4/Main.java

@ -0,0 +1,20 @@
/**
* 测试类验证图形面积计算器的功能
*/
public class Main {
public static void main(String[] args) {
// 1. 创建圆形对象(半径5)
Shape circle = new Circle(5);
// 2. 创建矩形对象(长4,宽3)
Shape rectangle = new Rectangle(4, 3);
// 3. 创建三角形对象(底6,高4)
Shape triangle = new Triangle(6, 4);
// 4. 通过工具类统一打印面积(多态效果)
System.out.println("=== 圆形面积 ===");
ShapeUtil.printArea(circle);
System.out.println("\n=== 矩形面积 ===");
ShapeUtil.printArea(rectangle);
System.out.println("\n=== 三角形面积 ===");
ShapeUtil.printArea(triangle);
}
}

30
w4/README.md

@ -0,0 +1,30 @@
图形面积计算器重构实验
一、实验背景
现有Circle、Rectangle、Triangle三个图形类独立存在,无法统一处理。本实验通过抽象类+继承重构,实现图形面积的统一计算与打印。
二、文件说明
Shape.java:抽象父类,定义面积计算接口
Circle.java:圆形类,继承Shape
Rectangle.java:矩形类,继承Shape
Triangle.java:三角形类,继承Shape
ShapeUtil.java:工具类,统一打印面积
Main.java:测试类,程序入口
三、运行步骤
编译:javac \*.java
运行:java Main

43
w4/Rectangle.java

@ -0,0 +1,43 @@
/**
* 矩形类继承Shape实现面积计算
*/
public class Rectangle extends Shape {
// 长
private double length;
// 宽
private double width;
/**
* 无参构造
*/
public Rectangle() {}
/**
* 带参构造初始化长和宽
* @param length
* @param width
*/
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
/**
* 实现父类抽象方法计算矩形面积×
* @return 矩形的面积
*/
@Override
public double getArea() {
return length * width;
}
// Getter和Setter
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;
}
}

10
w4/Shape.java

@ -0,0 +1,10 @@
/**
* 图形抽象父类定义统一的面积计算接口
*/
public abstract class Shape {
/**
* 抽象方法计算图形面积由子类具体实现
* @return 图形面积
*/
public abstract double getArea();
}

12
w4/ShapeUtil.java

@ -0,0 +1,12 @@
/**
* 图形工具类提供统一的面积打印方法
*/
public class ShapeUtil {
/**
* 统一打印图形面积的方法支持所有Shape子类
* @param shape 图形对象Circle/Rectangle/Triangle
*/
public static void printArea(Shape shape) {
System.out.println("该图形的面积为:" + shape.getArea());
}
}

43
w4/Triangle.java

@ -0,0 +1,43 @@
/**
* 三角形类继承Shape实现面积计算
*/
public class Triangle extends Shape {
// 底
private double base;
// 高
private double height;
/**
* 无参构造
*/
public Triangle() {}
/**
* 带参构造初始化底和高
* @param base
* @param height
*/
public Triangle(double base, double height) {
this.base = base;
this.height = height;
}
/**
* 实现父类抽象方法计算三角形面积×/2
* @return 三角形的面积
*/
@Override
public double getArea() {
return base * height / 2;
}
// Getter和Setter
public double getBase() {
return base;
}
public void setBase(double base) {
this.base = base;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
}

BIN
w4/实验报告.docx

Binary file not shown.

BIN
w4/运行输出.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Loading…
Cancel
Save