Wprowadzenie do OOP
Część sekcji Programowanie obiektowe ścieżki Dart w Coddy. Lekcja 3 z 110.
Programowanie obiektowe (OOP) organizuje kod wokół obiektów, które zawierają dane (zmienne instancji) i funkcje (metody).
Utwórz plik o nazwie car.dart z klasą
class Car {
// puste ciało klasy
}Utwórz kolejny plik o nazwie driver.dart, aby użyć klasy
import 'car.dart';Utwórz obiekt klasy Car, wpisując nazwę klasy, a następnie nawiasy
void main() {
Car myCar = Car();
}Sprawdź typ swojego obiektu za pomocą runtimeType
print(myCar.runtimeType);Wynik:
CarTo potwierdza, że udało Ci się utworzyć obiekt na podstawie klasy Car. W programowaniu obiektowym klasa jest jak projekt, a obiekt to to, co tworzysz na jego podstawie. W Dart obiekty tworzy się, wywołując nazwę klasy jak funkcję: Car().
Wyzwanie
ŚredniW tym wyzwaniu użyjesz klasy Car zdefiniowanej w pliku car.dart i utworzysz na jej podstawie obiekt w pliku driver.dart.
Zaktualizuj plik driver.dart, aby:
- Utworzyć obiekt klasy
Carza pomocąCar()i zapisać go w zmiennej o nazwiemyCar
Plik driver wypisze typ w czasie wykonywania, aby zweryfikować Twoje rozwiązanie.
Spróbuj swoich sił
import 'car.dart';
void main() {
// TODO: Utwórz obiekt Car o nazwie myCar
Car myCar = ?;
print(myCar.runtimeType);
}
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