Menu
Coddy logo textTech

Słowo kluczowe this

Część sekcji Programowanie obiektowe ścieżki Dart w Coddy. Lekcja 5 z 110.

Słowo kluczowe this odnosi się do bieżącej instancji klasy. Wewnątrz metody this pozwala uzyskać dostęp do własnych zmiennych obiektu.

Oto przykład klasy z metodami używającymi this:

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

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

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

Wewnątrz describe() this.color i this.model odnoszą się do zmiennych tego konkretnego obiektu.

Utwórz obiekt samochodu i ustaw jego zmienne:

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

Wywołaj metody:

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

Wynik:

Beep beep!
I am a Red Sedan

this jest szczególnie przydatne, gdy parametr metody ma taką samą nazwę jak zmienna instancji:

class Car {
  String color = '';

  void setColor(String color) {
    this.color = color; // this.color = zmienna instancji, color = parametr
  }
}

Bez this Dart nie wiedziałby, czy color odnosi się do parametru, czy do zmiennej instancji. Kluczowa kwestia: this zawsze odnosi się do konkretnego obiektu, który aktualnie wywołuje metodę.

challenge icon

Wyzwanie

Łatwy

Uzupełnij klasę Car w pliku car.dart, dodając metodę o nazwie displayInfo, która używa słowa kluczowego this, aby wypisać rok produkcji, markę i model samochodu w formacie:

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

  • car.dart: Zawiera klasę Car, do której dodasz metodę displayInfo
  • driver.dart: Ustawia zmienne obiektu samochodu i wywołuje displayInfo() (zablokowany)

Spróbuj swoich sił

import 'car.dart';

void main() {
  Car myCar = Car();
  myCar.year = '2020';
  myCar.make = 'Toyota';
  myCar.model = 'Corolla';
  myCar.displayInfo();
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Dart online