You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.7 KiB
3.7 KiB
图形面积计算器 - 类图
UML类图(文字描述)
┌─────────────────────────┐
│ <<abstract>> │
│ Shape │
├───────────────────────┤
│ - name: String │
├───────────────────────┤
│ + Shape(name: String)│
│ + getName(): String │
│ + getArea(): double │
│ <<abstract>> │
└───────────┬───────────┘
│
┌──────────────────────┼──────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐
│ Circle │ │ Rectangle │ │ Triangle │
├───────────────────┤ ├───────────────────┤ ├───────────────────┤
│ - radius: double │ │ - width: double │ │ - base: double │
│ │ │ - height: double │ │ - height: double │
├───────────────────┤ ├───────────────────┤ ├───────────────────┤
│ + Circle(radius) │ │ + Rectangle(w,h) │ │ + Triangle(b,h)│
│ + getRadius() │ │ + getWidth() │ │ + getBase() │
│ + setRadius() │ │ + setWidth() │ │ + setBase() │
│ + getArea() │ │ + getHeight() │ │ + getHeight() │
│ @Override │ │ + setHeight() │ │ + setHeight() │
└───────────────────┘ │ + getArea() │ │ + getArea() │
│ @Override │ │ @Override │
└───────────────────┘ └───────────────────┘
┌─────────────────────────────────┐
│ ShapeUtil │
├─────────────────────────────────┤
│ + printArea(Shape shape) │
└─────────────────────────────────┘
类图说明
类关系说明
-
**Shape(抽象类)
- 是所有图形的父类
- 包含抽象方法 getArea()
- 所有子类必须实现此方法
-
**Circle(圆)
- 继承自 Shape
- 实现圆形面积计算:π × r²
-
**Rectangle(矩形)
- 继承自 Shape
- 实现矩形面积计算:宽 × 高
-
**Triangle(三角形)
- 继承自 Shape
- 实现三角形面积计算:0.5 × 底 × 高
-
**ShapeUtil(工具类)
- 提供静态方法 printArea()
- 参数为 Shape 类型(多态)
- 可以接受任何 Shape 的子类
继承关系符号
- 箭头表示继承关系(is-a)
- Circle is-a Shape
- Rectangle is-a Shape
- Triangle is-a Shape