# 图形面积计算器 - 类图 ## UML类图(文字描述) ``` ┌─────────────────────────┐ │ <> │ │ Shape │ ├───────────────────────┤ │ - name: String │ ├───────────────────────┤ │ + Shape(name: String)│ │ + getName(): String │ │ + getArea(): double │ │ <> │ └───────────┬───────────┘ │ ┌──────────────────────┼──────────────────────┐ │ │ │ ▼ ▼ ▼ ┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐ │ 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) │ └─────────────────────────────────┘ ``` ## 类图说明 ### 类关系说明 1. **Shape(抽象类) - 是所有图形的父类 - 包含抽象方法 getArea() - 所有子类必须实现此方法 2. **Circle(圆) - 继承自 Shape - 实现圆形面积计算:π × r² 3. **Rectangle(矩形) - 继承自 Shape - 实现矩形面积计算:宽 × 高 4. **Triangle(三角形) - 继承自 Shape - 实现三角形面积计算:0.5 × 底 × 高 5. **ShapeUtil(工具类) - 提供静态方法 printArea() - 参数为 Shape 类型(多态) - 可以接受任何 Shape 的子类 ### 继承关系符号 - 箭头表示继承关系(is-a) - Circle is-a Shape - Rectangle is-a Shape - Triangle is-a Shape