静的メンバーとクラス定数
クラスレベルでデータとヘルパーを共有する
「静的メンバーとクラス定数」はCoddyKit上の無料Dart Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDart Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Dart Academyコースには全4レッスンが含まれています。
インスタンスごとではなく共有
ほとんどのメンバーは各オブジェクトに属しますが、クラスそのものに属するメンバーもあります。それらはstaticメンバーと呼ばれ、全員で共有されます。
staticフィールド
フィールドにstaticを付けると、インスタンスごとに1つずつではなく、クラス全体で1つだけ存在します。すべてのオブジェクトが同じ値を参照します。
class Dog {
static int count = 0;
}staticメンバーへのアクセス
staticメンバーにはインスタンスではなくクラス名を通してアクセスします。使うためにオブジェクトを作成する必要はありません。
Dog.count = 5;
print(Dog.count);インスタンス数を数える
staticフィールドの典型的な用途は、共有カウンターです。新しいオブジェクトが作られるたびに値を増やして、存在する数を追跡できます。
Dog() {
count++;
}staticメソッド
staticメソッドもクラスに属します。thisを持たず、インスタンスフィールドにはアクセスできません。アクセスできるのはstaticメンバーだけです。
static int square(int n) => n * n;staticメソッドの呼び出し
staticメソッドはクラス名に対して呼び出します。クラス名の下にまとめた、名前空間付きのヘルパー関数のように使えます。
var r = MathUtil.square(4); // 16クラス定数
staticとconstを組み合わせると、共有定数を作れます。コンパイル時に計算され、クラス全体で同じ値になります。
static const double pi = 3.14159;クラス定数の使用
クラス定数はstaticフィールドと同じように、クラス名を通して読み取ります。固定された設定値に適しています。
print(Circle.pi);staticからインスタンスは見えない
staticメンバーはオブジェクトなしで実行されるため、thisを持ちません。そこからインスタンスフィールドを読み取ろうとするとエラーになります。
static void show() {
// print(name); // error
}staticを選ぶ場面
データや振る舞いが、作成する特定のオブジェクトではなく型全体に属するときはstaticを使います。
staticヘルパーで整理する
関連するヘルパーをstaticメソッドとしてまとめると、単独の関数として散らばらず、1つのクラス名の下に整理できます。🧰
簡単な確認
クラスのすべてのオブジェクトで共有するカウンターが1つ必要です。何を使いますか?
まとめ:Staticと定数
staticメンバーはクラスに属し、thisを持たないこと、そしてstatic constで共有するコンパイル時定数を定義できることを学びました。🎉
よくある質問
「静的メンバーとクラス定数」レッスンは無料ですか?
はい。「静的メンバーとクラス定数」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Dart Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Dart Academyコースには全4レッスンが含まれています。
「静的メンバーとクラス定数」で何を学びますか?
クラスレベルでデータとヘルパーを共有する ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Dart Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDart Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「静的メンバーとクラス定数」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDart Academyレッスンでコードを書いて実行できますか?
はい。すべてのDart Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- フィールドを持つクラスを定義する
- インスタンスメソッドとthis
- GetterとSetter
- 静的メンバーとクラス定数