Menu
Coddy logo textTech

まとめ - Shape Builder

CoddyのDartジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 16/110。

challenge icon

チャレンジ

簡単

この章で学んだすべてのコンストラクタのテクニックを組み合わせた Rectangle クラスを作成しましょう。複数の方法でインスタンス化できる、汎用性の高い図形クラスを作成します。

コードを2つのファイルに整理します:

  • rectangle.dart: 以下の内容を持つ Rectangle クラスを定義します:
    • 2つの final double フィールド: widthheight
    • 2つの計算された final double フィールド: areaperimeter
    • widthheight を受け取り、初期化リストを使用して area (width × height) と perimeter (2 × (width + height)) を計算するメインコンストラクタ
    • 同じ幅と高さを指定してメインコンストラクタにリダイレクトする、名前付きコンストラクタ Rectangle.square(double side)
    • 黄金比 (height = width × 1.618) を使用して長方形を作成し、メインコンストラクタにリダイレクトする、名前付きコンストラクタ Rectangle.golden(double width)
    • 1×1 の長方形を作成する定数コンストラクタ Rectangle.unit() (これには別途 const コンストラクタが必要です)
    • 長方形の情報を表示する display() メソッド
  • main.dart: 作成した長方形クラスをインポートし、4つの長方形を作成します:
    • 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()を呼び出す
}

オブジェクト指向プログラミングのすべてのレッスン