commit 5e9fa21b4dc4d2dc7385366aa55f1ded3db3ba26 Author: Guoyiting <654525901@qq.com> Date: Mon Mar 30 12:38:06 2026 +0800 提交实验代码 diff --git a/ShapeAreaCalculator/Circle.java b/ShapeAreaCalculator/Circle.java new file mode 100644 index 0000000..531c763 --- /dev/null +++ b/ShapeAreaCalculator/Circle.java @@ -0,0 +1,15 @@ +package ShapeAreaCalculator; + +public class Circle extends Shape { + private double radius; + + public Circle(double radius) { + this.radius = radius; + } + + @Override + public double getArea() { + return Math.PI * radius * radius; + } +} + diff --git a/ShapeAreaCalculator/Main.java b/ShapeAreaCalculator/Main.java new file mode 100644 index 0000000..6f8f78e --- /dev/null +++ b/ShapeAreaCalculator/Main.java @@ -0,0 +1,13 @@ +package ShapeAreaCalculator; + +public class Main { + public static void main(String[] args) { + Shape circle = new Circle(5); + Shape rectangle = new Rectangle(4, 6); + Shape triangle = new Triangle(3, 4); + + ShapeUtil.printArea(circle); + ShapeUtil.printArea(rectangle); + ShapeUtil.printArea(triangle); + } +} diff --git a/ShapeAreaCalculator/Rectangle.java b/ShapeAreaCalculator/Rectangle.java new file mode 100644 index 0000000..96b3acc --- /dev/null +++ b/ShapeAreaCalculator/Rectangle.java @@ -0,0 +1,16 @@ +package ShapeAreaCalculator; + +public class Rectangle extends Shape { + private double width; + private double height; + + public Rectangle(double width, double height) { + this.width = width; + this.height = height; + } + + @Override + public double getArea() { + return width * height; + } +} diff --git a/ShapeAreaCalculator/Shape.java b/ShapeAreaCalculator/Shape.java new file mode 100644 index 0000000..d72d164 --- /dev/null +++ b/ShapeAreaCalculator/Shape.java @@ -0,0 +1,5 @@ +package ShapeAreaCalculator; + +public abstract class Shape { + public abstract double getArea(); +} diff --git a/ShapeAreaCalculator/ShapeUtil.java b/ShapeAreaCalculator/ShapeUtil.java new file mode 100644 index 0000000..e96f107 --- /dev/null +++ b/ShapeAreaCalculator/ShapeUtil.java @@ -0,0 +1,7 @@ +package ShapeAreaCalculator; + +public class ShapeUtil { + public static void printArea(Shape shape) { + System.out.println("图形面积: " + shape.getArea()); + } +} diff --git a/ShapeAreaCalculator/Triangle.java b/ShapeAreaCalculator/Triangle.java new file mode 100644 index 0000000..8b571ad --- /dev/null +++ b/ShapeAreaCalculator/Triangle.java @@ -0,0 +1,16 @@ +package ShapeAreaCalculator; + +public class Triangle extends Shape { + private double base; + private double height; + + public Triangle(double base, double height) { + this.base = base; + this.height = height; + } + + @Override + public double getArea() { + return 0.5 * base * height; + } +} diff --git a/ShapeAreaCalculator/类图.puml b/ShapeAreaCalculator/类图.puml new file mode 100644 index 0000000..1f74926 --- /dev/null +++ b/ShapeAreaCalculator/类图.puml @@ -0,0 +1,47 @@ +@startuml +' 设置样式 +skinparam classAttributeIconSize 0 +skinparam backgroundColor #FEFEFE +skinparam class { + BackgroundColor #E1F5FE + BorderColor #0288D1 + ArrowColor #0288D1 +} + +abstract class Shape { + {abstract} + getArea(): double +} + +class Circle { + - radius: double + + Circle(radius: double) + + getArea(): double +} + +class Rectangle { + - width: double + - height: double + + Rectangle(width: double, height: double) + + getArea(): double +} + +class Triangle { + - base: double + - height: double + + Triangle(base: double, height: double) + + getArea(): double +} + +class ShapeUtil { + + {static} printArea(shape: Shape): void +} + +' 继承关系 +Shape <|-- Circle +Shape <|-- Rectangle +Shape <|-- Triangle + +' 依赖关系 +ShapeUtil ..> Shape : uses + +@enduml \ No newline at end of file