Menu
CoddyTech

回顾:形状构建器

本课属于 Coddy Dart 学习旅程的“面向对象编程”单元。第 16 课,共 110 课。

challenge icon

挑战

简单

让我们来构建一个 Rectangle 类,把你在本章学过的所有构造函数技巧结合起来。你将创建一个用途广泛的形状类,可以通过多种方式实例化。

你将把代码分成两个文件:

  • rectangle.dart:定义一个 Rectangle 类,包含以下内容:
    • 两个 final double 字段:width 和 height
    • 两个计算得出的 final double 字段:area 和 perimeter
    • 一个主构造函数,接收 width 和 height,并使用初始化列表计算 area(width × height)和 perimeter(2 × (width + height))
    • 一个命名构造函数 Rectangle.square(double side),将调用重定向到主构造函数,并传入相等的宽度和高度
    • 一个命名构造函数 Rectangle.golden(double width),使用黄金比例创建矩形(height = width × 1.618),并将调用重定向到主构造函数
    • 一个常量构造函数 Rectangle.unit(),用于创建 1×1 矩形(你需要为此单独定义一个 const 构造函数)
    • 一个 display() 方法,用于输出矩形的信息
  • main.dart:导入你的矩形类,并创建四个矩形:
    • 一个宽度为 4.0、高度为 3.0 的自定义矩形
    • 一个边长为 5.0 的正方形
    • 一个宽度为 10.0 的黄金矩形
    • 使用常量构造函数创建一个单位矩形(将它创建为编译时常量)
    按照上述顺序,对每个矩形调用 display()。

display() 方法应按照以下准确格式输出:

Rectangle [width]x[height] | Area: [area] | Perimeter: [perimeter]

预期输出:

Rectangle 4.0x3.0 | Area: 12.0 | Perimeter: 14.0
Rectangle 5.0x5.0 | Area: 25.0 | Perimeter: 20.0
Rectangle 10.0x16.18 | Area: 161.8 | Perimeter: 52.36
Rectangle 1.0x1.0 | Area: 1.0 | Perimeter: 4.0

亲手试试

import 'rectangle.dart';

void main() {
  // TODO: 创建一个宽为 4.0、高为 3.0 的自定义矩形

  // TODO: 创建一个边长为 5.0 的正方形

  // TODO: 创建一个宽为 10.0 的黄金矩形

  // TODO: 使用常量构造函数创建一个单位矩形
  // (使用 'const' 将它创建为编译时常量)

  // TODO: 按上述顺序对每个矩形调用 display()
}

面向对象编程中的所有课

自己练习: Dart 在线编译器