Klasy a obiekty
Część sekcji Programowanie obiektowe ścieżki Dart w Coddy. Lekcja 4 z 110.
Klasy i obiekty służą różnym celom. Klasa jest planem, a obiekt to coś, co tworzysz na jego podstawie.
Oto przykład klasy ze zmiennymi instancji:
class Dog {
String name = '';
String breed = '';
}Zmienne zadeklarowane wewnątrz klasy (takie jak name i breed) należą do każdego obiektu utworzonego na podstawie tej klasy. Później szczegółowo omówimy zmienne instancji.
Utwórz wiele obiektów z tej samej klasy:
Dog dog1 = Dog();
Dog dog2 = Dog();Każdy obiekt może mieć własne, unikalne wartości tych zmiennych:
dog1.name = 'Nicky';
dog1.breed = 'Siberian Husky';
dog2.name = 'Teemon';
dog2.breed = 'Labrador';Użyj operatora kropki ., aby uzyskać dostęp do zmiennych obiektu:
print('${dog1.name} is a ${dog1.breed}');
print('${dog2.name} is a ${dog2.breed}');Wynik:
Nicky is a Siberian Husky
Teemon is a LabradorKluczowa różnica: Klasa Dog definiuje strukturę wspólną dla wszystkich psów, podczas gdy dog1 i dog2 to pojedyncze obiekty z własnymi unikalnymi danymi.
Wyzwanie
ŁatwyUzupełnij kod, aby utworzyć dwa obiekty uczniów z klasy Student i ustawić ich zmienne.
student.dart: zawiera klasęStudent(zablokowaną)driver.dart: utwórz dwa obiekty i ustaw ich dane
Ustaw następujące wartości:
student1: imię to'Alice', a ocena to'A'student2: imię to'Bob', a ocena to'B'
Spróbuj swoich sił
import 'student.dart';
void main() {
// TODO: Utwórz dwa obiekty Student
// TODO: Ustaw name i grade dla student1 (name: 'Alice', grade: 'A')
// TODO: Ustaw name i grade dla student2 (name: 'Bob', grade: 'B')
print('${student1.name} has grade ${student1.grade}');
print('${student2.name} has grade ${student2.grade}');
}
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