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 Sedanthis 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ę.
Wyzwanie
ŁatwyUzupeł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ędisplayInfodriver.dart: Ustawia zmienne obiektu samochodu i wywołujedisplayInfo()(zablokowany)
Spróbuj swoich sił
import 'car.dart';
void main() {
Car myCar = Car();
myCar.year = '2020';
myCar.make = 'Toyota';
myCar.model = 'Corolla';
myCar.displayInfo();
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Programowanie obiektowe
1Podstawy OOP
Pliki zewnętrzneBiblioteki i importyWprowadzenie do OOPKlasy a obiektySłowo kluczowe thisMetodyZmienne instancjiPodstawy konstruktorówPowtórka – prosty kalkulator4Bezpieczeństwo wartości null
Wprowadzenie do bezpieczeństwa wartości nullTypy dopuszczające null i niedopuszczające nullOperatory ? i !Słowo kluczowe late a bezpieczeństwo wartości nullOperatory uwzględniające nullBezpieczeństwo wartości null w klasachPodsumowanie — system profili użytkowników7Klasy abstrakcyjne i interfejsy
Klasy abstrakcyjneMetody abstrakcyjneInterfejsy w DartInterfejsy niejawneImplementowanie a rozszerzanieWiele interfejsówPowtórka — kalkulator kształtów10Kolekcje i typy generyczne
Przegląd List, Set i MapKolekcje bezpieczne typowoKlasy generyczneMetody generyczneOgraniczenia typów generycznychIterable i IteratorPowtórka — generyczne przechowywanie danych13Zaawansowane koncepcje OOP
Kompozycja a dziedziczenieMetody rozszerzająceKlasy wywoływalneKlasy zapieczętowane (Dart 3)Rekordy (Dart 3)Wzorce i dopasowywanie (3.0)Typy wyliczeniowe z metodami16Projekt: Zarządzanie biblioteką
Omówienie projektuKlasy książek i użytkowników2Konstruktory w Dart
Konstruktor domyślnyKonstruktory nazwaneListy inicjalizująceKonstruktory stałeKonstruktory fabryczneKonstruktory przekierowującePodsumowanie — budowanie kształtów5Hermetyzacja
Elementy publiczne a prywatneKonwencja prefiksu _Prywatność na poziomie bibliotekiGettery i settery — szczegółowoUkrywanie informacjiPodsumowanie — dane uczniów8Domieszki
Wprowadzenie do domieszekTworzenie domieszekKorzystanie z wielu domieszekSłowo kluczowe on w domieszkachDomieszka a dziedziczenieDomieszka a interfejsPodsumowanie – system zwierząt11Metody specjalne
Nadpisanie toString()Nadpisanie hashCode i ==Interfejs ComparableMetoda call()Nadpisanie noSuchMethodPodsumowanie — własna kolekcja14Wzorce projektowe, część 1
Wprowadzenie do wzorców projektowychWzorzec SingletonWzorzec FactoryWzorzec ObserverWzorzec Strategy3Właściwości klas
Elementy instancji a elementy statycznePola final i constZmienne inicjalizowane z opóźnieniemMetody i pola statyczneGettery i setteryPowtórzenie – menedżer kont bankowych6Dziedziczenie
Podstawy dziedziczeniaSłowo kluczowe superPrzesłanianie metodAdnotacja @overrideSłowo kluczowe final dla klasKonstruktory i dziedziczeniePowtórzenie – hierarchia pracowników9Polimorfizm
Podstawy polimorfizmuPolimorfizm za pomocą interfejsówSprawdzanie typu w czasie działaniaOperatory is i asSłowo kluczowe covariantPodsumowanie — procesor płatnościPoćwicz samodzielnie: Kompilator Dart online