Menu
Coddy logo textTech

thisキーワード

CoddyのDartジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 5/110。

this キーワードは、クラスの現在のインスタンスを指します。メソッド内では、this を使ってオブジェクト自身の変数にアクセスできます。

ここでは、thisを使用するメソッドを持つclassの例を示します:

class Car {
  String color = '';
  String model = '';

  void honk() {
    print('Beep beep!');
  }

  void describe() {
    print('I am a ${this.color} ${this.model}');
  }
}

describe() の内部では、this.colorthis.model はその特定のオブジェクトの variable を指します。

car オブジェクトを作成し、その変数を設定します。

Car myCar = Car();
myCar.color = 'Red';
myCar.model = 'Sedan';

メソッドを呼び出します:

myCar.honk();
myCar.describe();

出力:

Beep beep!
I am a Red Sedan

this は、method parameter が instance variable と同じ名前を持つ場合に特に便利です:

class Car {
  String color = '';

  void setColor(String color) {
    this.color = color; // this.color = インスタンス変数, color = パラメータ
  }
}

thisがなければ、Dartはcolorがparameterを指しているのか、instance variableを指しているのか判断できません。要点:thisは常に、現在methodを呼び出している特定のオブジェクトを指します。

challenge icon

チャレンジ

簡単

thisキーワードを使用して、車の年式、メーカー、モデルを次の形式で出力するdisplayInfoというメソッドを追加し、Carクラスをcar.dartで完成させてください。

'This car is a [year] [make] [model]'

  • car.dartdisplayInfoメソッドを追加するCarクラスが含まれています
  • driver.dart:carオブジェクトの変数を設定し、displayInfo()を呼び出します(ロック済み)

自分で試してみよう

import 'car.dart';

void main() {
  Car myCar = Car();
  myCar.year = '2020';
  myCar.make = 'Toyota';
  myCar.model = 'Corolla';
  myCar.displayInfo();
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

オブジェクト指向プログラミングのすべてのレッスン

自分で練習してみよう: Dartオンラインコンパイラ