0Pricing
Dart Academy · レッスン

GetterとSetter

計算プロパティと制御付きプロパティを公開する

「GetterとSetter」はCoddyKit上の無料Dart Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDart Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Dart Academyコースには全4レッスンが含まれています。

単純なフィールドを超えて

計算によって求めるプロパティや、アクセスを制御するプロパティが必要になることがあります。Dartのgetterとsetterを使えば、値の読み書きを制御できます。

getterとは

getterは外部からはフィールドのように見えますが、コードを実行して値を生成します。getキーワードで定義します。

int get area => width * height;

getterで値を計算する

getterは、他のフィールドから導き出される値に最適です。通常のドット記法で読み取り、かっこは必要ありません。

class Box {
  int w = 2, h = 3;
  int get area => w * h;
}

getterを呼び出す

getterにはフィールドとまったく同じようにアクセスします。内部のコードはアクセスするたびに実行されるため、常に最新のデータが反映されます。

var b = Box();
print(b.area); // 6

setterとは

setterは値を代入したときにコードを実行します。setキーワードと、入力を受け取る1つのパラメーターで定義します。

set width(int value) {
  _w = value;
}

setterで入力を保護する

setterでは、格納する前に値を検証できます。不正なデータを拒否したり、範囲内に収めたり、代入時に変更を記録したりできます。

set age(int v) {
  if (v >= 0) _age = v;
}

プライベートなバッキングフィールド

アンダースコアで始まる名前は、そのライブラリ内でのみプライベートです。setterでは、_ageのようなプライベートなバッキングフィールドを保護することがよくあります。

int _age = 0;
int get age => _age;

setterを呼び出す

イコール記号を使い、フィールドと同じようにsetterへ代入します。Dartはその代入を、値を保護するコード経由で処理します。

var p = Person();
p.age = 25;

setterのないgetter

getterだけを定義すると、読み取り専用プロパティを作れます。外部のコードは読み取れますが、値を代入することはできません。

String get fullName => "$first $last";

getterとsetterを使う理由

getterとsetterを使えば、呼び出し側を壊さずに内部の格納方法を後から変更できます。公開プロパティは同じまま、内部にロジックを隠せます。🔐

計算プロパティの例

getter は書式設定に便利です。複数のフィールドを組み合わせて、呼び出し側が通常のプロパティと同じように扱えるわかりやすい文字列を作れます。

String get label => "$name: $score pts";

簡単な確認

他のコードから読み取ることはできますが、決して代入できないプロパティが必要です。何を定義しますか?

まとめ:GetterとSetter

getter は値を計算して公開し、setter は代入を制御すること、そして両者を組み合わせると内部の詳細をきれいに隠せることを学びました。🎉

よくある質問

「GetterとSetter」レッスンは無料ですか?

はい。「GetterとSetter」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Dart Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Dart Academyコースには全4レッスンが含まれています。

「GetterとSetter」で何を学びますか?

計算プロパティと制御付きプロパティを公開する ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Dart Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDart Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「GetterとSetter」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDart Academyレッスンでコードを書いて実行できますか?

はい。すべてのDart Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. フィールドを持つクラスを定義する
  2. インスタンスメソッドとthis
  3. GetterとSetter
  4. 静的メンバーとクラス定数
← Dart Academyに戻る