0Pricing
Dart Academy · レッスン

インスタンスメソッドとthis

インスタンスデータを操作する振る舞いを追加する

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

振る舞いを追加する

フィールドはデータを格納しますが、クラスは処理も実行できます。クラス内で定義された関数をインスタンスメソッドと呼びます。

最初のメソッド

メソッドは関数と同じように記述しますが、クラス本体の中に置きます。オブジェクト自身のフィールドを直接読み取って利用できます。

class Dog {
  String name = "Rex";
  void bark() {
    print("Woof!");
  }
}

メソッドを呼び出す

インスタンスにドット記法を使うと、そのメソッドを実行できます。ドットによって、どのオブジェクトが処理を行うのかをDartに伝えます。

var d = Dog();
d.bark();

メソッドからフィールドを見る

メソッド内では、名前だけでフィールドを使えます。メソッドは、呼び出されたインスタンスに対して自動的に処理を行います。

void greet() {
  print("Hi, I am $name");
}

thisについて

thisキーワードは現在のインスタンス、つまり今まさにメソッドが実行されているオブジェクトを指します。

void greet() {
  print(this.name);
}

thisを省略できる場合

多くの場合、thisは暗黙的に使われるため省略できます。名前の衝突がなければ、nameとthis.nameは同じ意味です。

void greet() {
  print(name); // same as this.name
}

thisが必要な場合

パラメーターが同じ名前のフィールドを隠す場合はthisが必要です。これにより、パラメーターではなくフィールドを指すことをDartに伝えます。

void rename(String name) {
  this.name = name;
}

メソッドはパラメーターを受け取る

メソッドは、通常の関数と同じように入力を受け取れます。その入力とフィールドを組み合わせて、役立つ結果を生成できます。

void addAge(int years) {
  age = age + years;
}

メソッドは値を返せる

メソッドに戻り値の型を指定し、結果を返します。これにより、オブジェクトが計算を行い、値をコードに返せます。

String label() {
  return "$name ($age)";
}

メソッドからメソッドを呼び出す

あるメソッドから、同じオブジェクト上の別のメソッドを呼び出せます。名前を直接使うだけで、thisは自動的に適用されます。

void play() {
  bark();
  print("$name is playing");
}

メソッドが重要な理由

メソッドは、使用するデータのそばに振る舞いを置きます。オブジェクトが自律的で完結したものになり、はるかに理解しやすくなります。🐕

クイックチェック

メソッドのパラメーターがフィールドと同じ名前です。フィールドにはどのように値を設定しますか?

まとめ:メソッドとthis

メソッドは振る舞いを追加し、フィールドを直接利用すること、また名前が衝突した場合にthisが現在のインスタンスを指すことを学びました。🎉

よくある質問

「インスタンスメソッドとthis」レッスンは無料ですか?

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

「インスタンスメソッドとthis」で何を学びますか?

インスタンスデータを操作する振る舞いを追加する ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「インスタンスメソッドとthis」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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