まとめ - Shape Builder
CoddyのDartジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 16/110。
チャレンジ
簡単この章で学んだすべてのコンストラクタのテクニックを組み合わせた Rectangle クラスを作成しましょう。複数の方法でインスタンス化できる、汎用性の高い図形クラスを作成します。
コードを2つのファイルに整理します:
rectangle.dart: 以下の内容を持つRectangleクラスを定義します:- 2つの
final doubleフィールド:widthとheight - 2つの計算された
final doubleフィールド:areaとperimeter widthとheightを受け取り、初期化リストを使用して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()メソッド
- 2つの
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()を呼び出す
}
オブジェクト指向プログラミングのすべてのレッスン
4Null Safety
Null Safety 入門Nullable と Non-Nullable? 演算子と ! 演算子late キーワードと Null SafetyNull-Aware 演算子クラスにおける Null Safetyまとめ:ユーザープロフィールシステム10コレクションとジェネリクス
List, Set, Map の概要型安全なコレクションジェネリッククラスジェネリックメソッドジェネリクスの制約Iterable と Iteratorまとめ:ジェネリックなストレージ