Proje Kurulumu
Coddy'nin Lua Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 55 / 70.
Görev
KolayBir Şekil Yöneticisi sistemi için temel oluşturalım! Bu proje sonraki birkaç ders boyunca gelişecek, bu nedenle Shape temel sınıfını içeren temiz bir dosya yapısı oluşturarak başlayacağız.
Kodunu düzenlemek için iki dosya oluşturacaksın:
Shape.lua: Prototip desenini kullanarak temel birShapesınıfı tanımla. Her şeklin (örneğin "Circle" veya "Rectangle") birnameözniteliği vardır. Şeklin adını kabul eden bir:new(name)oluşturucusu ve bunu döndüren bir:getName()yöntemi ekle.main.lua: Modülü içe aktararak ve bir şekil örneği oluşturarak Shape sınıfını kullan. Girdiden bir şekil adı oku, bu adla bir Shape oluştur ve:getName()çağrısının sonucunu yazdır.
Bu temel sınıf, sonraki derslerde Rectangle ve Circle gibi özel şekiller için üst sınıf görevi görecek. Şimdilik sınıf yapısını doğru kurmaya odaklan: __index kurulumu, oluşturucu deseni ve alıcı yöntemi.
Girdi: Şeklin adını içeren tek bir satır (bir dize).
Çıktı: :getName() tarafından döndürülen şeklin adı.
Kendin dene
-- Shape modülünü gerektir
local Shape = require('Shape')
-- Şekil adını girdiden oku
local shapeName = io.read()
-- TODO: Verilen adla yeni bir Shape örneği oluştur
-- TODO: Şeklinizde :getName() çağrısının sonucunu yazdır
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 Rolleri10Proje: Şekil Yöneticisi
Proje KurulumuDikdörtgen SınıfıDaire SınıfıÇevre MetoduŞekil KoleksiyonuToplam AlanŞekilleri Filtrele2Sı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