Podsumowanie — poruszający się punkt
Część sekcji Programowanie obiektowe ścieżki Lua w Coddy. Lekcja 5 z 70.
Wyzwanie
ŁatwyUtwórz tabelę o nazwie point z dwoma polami:
x- współrzędna xy- współrzędna y
Dodaj metodę :move(dx, dy) przy użyciu składni dwukropka, która dodaje dx do self.x i dy do self.y.
Otrzymasz cztery dane wejściowe:
- Początkowa współrzędna x
- Początkowa współrzędna y
- Delta x (odległość przesunięcia w poziomie)
- Delta y (odległość przesunięcia w pionie)
Po utworzeniu punktu o początkowych współrzędnych i wywołaniu :move() z wartościami delta wypisz końcową pozycję w dokładnie takim formacie:
[x], [y]Na przykład, jeśli początkowa pozycja to (3, 5), a przesuniesz punkt o (2, -1), wynikiem powinno być:
5, 4Spróbuj swoich sił
-- Wczytaj dane wejściowe
local initial_x = tonumber(io.read())
local initial_y = tonumber(io.read())
local dx = tonumber(io.read())
local dy = tonumber(io.read())
-- TODO: Napisz swój kod poniżej
-- 1. Utwórz tablicę o nazwie 'point' z polami x i y (używając współrzędnych początkowych)
-- 2. Dodaj metodę :move(dx, dy), używając składni z dwukropkiem, która modyfikuje self.x i self.y
-- Wywołaj metodę move i wypisz wynik
point:move(dx, dy)
print(point.x .. ", " .. point.y)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