Özet - Araba Fabrikası
Coddy'nin Lua Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 11 / 70.
Görev
KolayBu bölümde öğrendiğin her şeyi bir araya getiren eksiksiz bir Car sınıfı oluşturalım! Her arabanın kendi modeline ve rengine sahip olduğu bir araba fabrikası sistemi oluşturacak, uygun modül organizasyonunu ve bağımsız örnekleri göstereceksin.
Kodunu iki dosya arasında düzenleyeceksin:
Car.lua: Standart prototip desenini izleyerekCarsınıfını tanımla. Sınıfın, arabaları kendilerine ait özelliklerle oluşturan bir:new(model, color)oluşturucusuna sahip olmalı. Her arabanın kendini tanıtmasını sağlayan bir:describe()yöntemi ekle.main.lua: Car modülünü require et ve her arabanın kendi bağımsız durumunu koruduğunu göstermek için birden fazla araba örneği oluştur.
:describe() yöntemin tam olarak şu biçimde yazdırmalı:
A [color] [model]Dört girdi alacaksın:
- İlk arabanın modeli
- İlk arabanın rengi
- İkinci arabanın modeli
- İkinci arabanın rengi
Ana dosyanda, verilen girdileri kullanarak iki araba oluştur ve her birinin kendini ayrı bir satırda tanıtmasını sağla.
Örneğin girdiler Sedan, blue, Truck ve red ise çıktı şöyle olmalı:
A blue Sedan
A red TruckHer araba kendi modelini ve rengini saklamalı; böylece sınıfının gerçekten bağımsız örnekler oluşturduğu kanıtlanır.
Kendin dene
-- Car modülünü dahil et
local Car = require('Car')
-- Girdileri oku
local model1 = io.read()
local color1 = io.read()
local model2 = io.read()
local color2 = io.read()
-- YAPILACAK: Car:new() kullanarak iki araba örneği oluşturun
-- YAPILACAK: Açıklamalarını yazdırmak için her araba üzerinde :describe() metodunu çağırın
Nesne Yönelimli Programlama bölümündeki tüm dersler
1'Self' Kavramı
Fonksiyonlu TablolarAçık 'self'İki Nokta SözdizimiNokta vs İki NoktaÖzet - Hareket Eden Nokta4Proje: Dijital Banka
Proje KurulumuPara Yatırma Metodu7Çok Biçimlilik ve Geçersiz Kılma
Metotları Geçersiz KılmaÜst Sınıf Metotlarını ÇağırmaDuck TypingOrtak ArayüzTür KontrolüÖzet - Çalışan Rolleri2Sınıf Prototip Kalıbı
Prototip Kavramı__index ile Bağlama:new() KurucusuÖznitelikleri BaşlatmaBağımsız ÖrneklerÖzet - Araba Fabrikası5OOP'de Operatör Aşırı Yükleme
Nesneleri ToplamaNesneleri ÇıkarmaNesneleri BirleştirmeNesneleri Karşılaştırma (<, >)Özet - Cüzdan Matematiği8Kapsülleme
Adlandırma KurallarıGizlilik için Closure'larClosure'lar Aracılığıyla ErişimSalt Okunur TablolarDoğrulama MantığıÖzet - Güvenli Kasa11Tasarım Kalıpları (Lite)
Fabrika FonksiyonlarıSingleton TablosuIterator KalıbıObserver (Dinleyici)Özet - Logger Fabrikası3Nesne Durumu ve Davranışı
Örnek DeğişkenleriGetter MetotlarıSetter MetotlarıHesaplanmış ÖzelliklerString BiçimlendirmeEşitlik KontrolleriÖzet - Öğrenci Notu6Kalıtımın Temelleri
Kalıtım KurulumuMetot KalıtımıConstructor'ı GenişletmeAlt Sınıf Metotları EklemePaylaşılan ve BenzersizÖzet - Şekil HiyerarşisiKendi başına pratik yap: Online Lua derleyicisi