デフォルトコンストラクターとパラメーター付きコンストラクター
オブジェクト作成時にフィールドを初期化する
「デフォルトコンストラクターとパラメーター付きコンストラクター」はCoddyKit上の無料Dart Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDart Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Dart Academyコースには全4レッスンが含まれています。
コンストラクタの役割
constructorは、クラス名を記述したときに新しいオブジェクトを構築し、その初期状態を設定する特別なメソッドです。🏗️
デフォルトコンストラクタ
コンストラクタを1つも記述しない場合、Dartは引数を取らず、何も設定されていないオブジェクトを作成するdefault constructorを自動的に用意します。
class Dog {}
var d = Dog(); // uses the default constructorパラメータ付きコンストラクタ
パラメータを追加すると、呼び出し側が最初に値を渡せます。parameterized constructorは、それらの値をオブジェクトのフィールドに設定します。
class Dog {
String name;
Dog(this.name);
}パラメータで使うthisキーワード
パラメータのthis.nameという省略記法は、引数を受け取り、同じ名前のフィールドに直接保存することを意味します。1行分の記述を省けます。
class Dog {
String name;
Dog(this.name);
}this省略記法を使わない場合
代わりに、本文の中で手動で代入することもできます。ここでのthisは、フィールドとパラメータの名前が衝突したときに両者を区別します。
class Dog {
String name;
Dog(String name) {
this.name = name;
}
}オブジェクトの作成
クラスを関数のように呼び出し、引数を順番に渡します。Dartがコンストラクタを実行し、準備済みのinstanceを返します。
var d = Dog("Rex");
print(d.name); // Rex複数のパラメータを順番に指定
パラメータを左から右に並べます。呼び出し側は同じpositionalな順序で渡す必要があるため、2つか3つの明確なフィールドに適しています。
class Point {
int x, y;
Point(this.x, this.y);
}本文へのロジック追加
コンストラクタの本文では、フィールド設定後に検証やログ出力などの追加処理を実行できます。このbodyは小さく、目的を絞って保ちましょう。
class Box {
int size;
Box(this.size) {
print("Box made: $size");
}
}コンストラクタには戻り値型がない
戻り値型を記述することも、値を返すこともありません。コンストラクタは常に新しいオブジェクトを返すため、nameだけで十分です。
class Cat {
Cat(); // no void, no return
}クラスごとに名前なしコンストラクタは1つ
クラスに指定できるunnamedコンストラクタは1つだけです。作成方法を増やす必要がある場合は、次にnamed constructorを使います。
1つ追加するとデフォルトはなくなる
コンストラクタを1つでも宣言した瞬間、Dartは引数なしのコンストラクタを自動生成しなくなります。それでもemptyな構築が必要なら、自分で追加してください。
class User {
String name;
User(this.name);
User.empty() : name = "";
}簡単な確認
デフォルトコンストラクタとパラメータ付きコンストラクタについて確認しましょう。
まとめ:オブジェクトの構築
constructorsについて学びました。自動生成されるデフォルトコンストラクタ、パラメータ付きコンストラクタ、thisの省略記法、そしてコンストラクタを宣言するとデフォルトがなくなる仕組みです。次はnamed constructorです。✨
よくある質問
「デフォルトコンストラクターとパラメーター付きコンストラクター」レッスンは無料ですか?
はい。「デフォルトコンストラクターとパラメーター付きコンストラクター」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Dart Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Dart Academyコースには全4レッスンが含まれています。
「デフォルトコンストラクターとパラメーター付きコンストラクター」で何を学びますか?
オブジェクト作成時にフィールドを初期化する ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Dart Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDart Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「デフォルトコンストラクターとパラメーター付きコンストラクター」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDart Academyレッスンでコードを書いて実行できますか?
はい。すべてのDart Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- デフォルトコンストラクターとパラメーター付きコンストラクター
- 意図を明確にする名前付きコンストラクター
- 初期化子リストとリダイレクト
- Factoryコンストラクターとconstコンストラクター