Konfiguracja projektu
Część sekcji Programowanie obiektowe ścieżki Lua w Coddy. Lekcja 19 z 70.
Wyzwanie
ŁatwyRozpoczynamy projekt Digital Bank. W kolejnych lekcjach zbudujesz klasę Account, która może przyjmować wpłaty, obsługiwać wypłaty, wypisywać swoje dane i przelewać pieniądze na inne konta. Wszystko zaczyna się od uporządkowanej struktury plików i konstruktora.
Twoje dwa pliki:
Account.lua: zdefiniuj tabelęAccount, ustawAccount.__index = Account, aby instancje mogły odnajdywać swoje metody, i napisz konstruktor:new(). Tworzy on pustą tabelę, ustawia jej metatabelę naAccount, przypisuje jejbalancewartość0i zwraca ją. Plik kończy się instrukcjąreturn Account.main.lua: załaduj moduł za pomocąrequire('Account'), utwórz dwa konta za pomocąAccount:new(), wypisz saldo każdego z nich w osobnym wierszu, a następnie wypiszsavings == checking, aby pokazać, że dwa wywołania utworzyły dwie różne tabele.
Oczekiwany wynik:
0
0
falseKażde konto zaczyna z zerowym saldem. W następnej lekcji dodasz metodę :deposit(amount), która zwiększa saldo.
Spróbuj swoich sił
-- TODO: załaduj moduł Account za pomocą require (plik to Account.lua)
local Account = nil
-- TODO: utwórz dwa konta za pomocą Account:new()
-- TODO: wypisz saldo każdego konta (każde w osobnym wierszu)
-- TODO: wypisz, czy oba konta są tą samą tabelą (nie powinny nią być)
Wszystkie lekcje w sekcji Programowanie obiektowe
1Koncepcja „self”
Tabele z funkcjamiJawne „self”Składnia z dwukropkiemKropka czy dwukropekPodsumowanie — poruszający się punkt4Projekt: Bank cyfrowy
Konfiguracja projektuMetoda wpłaty7Polimorfizm i nadpisywanie
Nadpisywanie metodWywoływanie metod klasy nadrzędnejTypowanie kaczeWspólny interfejsSprawdzanie typuPodsumowanie — role pracowników10Projekt: Menedżer kształtów
Konfiguracja projektuKlasa prostokątaKlasa kołaMetoda obwoduKolekcja kształtówPole całkowiteFiltrowanie kształtów2Wzorzec prototypu klasy
Koncepcja prototypuŁączenie za pomocą __indexKonstruktor :new()Inicjalizacja atrybutówNiezależne instancjePodsumowanie – fabryka samochodów5Przeciążanie operatorów w OOP
Dodawanie obiektówOdejmowanie obiektówŁączenie obiektówPorównywanie obiektów (<, >)Powtórka — działania na portfelu8Hermetyzacja
Konwencje nazewnictwaDomknięcia dla prywatnościDostęp za pomocą domknięćTabele tylko do odczytuLogika walidacjiPodsumowanie — bezpieczny sejf11Wzorce projektowe (podstawy)
Funkcje fabrykująceTabela SingletonWzorzec iteratoraObserwator (nasłuchujący)Powtórka — fabryka loggera3Stan i zachowanie obiektu
Zmienne instancjiMetody dostępoweMetody ustawiająceWłaściwości obliczaneFormatowanie ciągów znakówSprawdzanie równościPodsumowanie – ocena ucznia6Podstawy dziedziczenia
Konfiguracja dziedziczeniaDziedziczenie metodRozszerzanie konstruktoraDodawanie metod potomnychWspólne i unikalne elementyPowtórka — hierarchia kształtówPoćwicz samodzielnie: Kompilator Lua online