Proje Kurulumu
Coddy'nin Lua Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 55 / 70.
Görev
KolayBir Şekil Yöneticisi (Shape Manager) sisteminin temelini oluşturalım! Bu proje önümüzdeki birkaç ders boyunca büyüyecek, bu yüzden temel bir Shape sınıfı ile temiz bir dosya yapısı kurarak başlayacağız.
Kodunuzu düzenlemek için iki dosya oluşturacaksınız:
Shape.lua: Prototip desenini kullanarak temel birShapesınıfı tanımlayın. Her şeklin birnameözniteliği ( "Circle" veya "Rectangle" gibi) vardır. Şeklin adını kabul eden bir:new(name)kurucusu (constructor) ve bu adı döndüren bir:getName()metodu ekleyin.main.lua: Modülü require ederek ve bir şekil örneği (instance) oluşturarak Shape sınıfınızı hayata geçirin. Girdiden bir şekil adı okuyun, bu adla bir Shape oluşturun ve:getName()metodunu çağırmanın sonucunu yazdırın.
Bu temel sınıf, gelecek derslerde Rectangle ve Circle gibi belirli şekiller için ebeveyn (parent) görevi görecektir. Şimdilik sınıf yapısını doğru kurmaya odaklanın; __index kurulumu, kurucu deseni ve getter metodu.
Girdi: Şekil 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ü dahil et
local Shape = require('Shape')
-- Şekil adını girdiden oku
local shapeName = io.read()
-- TODO: Verilen adla yeni bir Shape örneği oluştur
-- TODO: Şekliniz üzerinde :getName() çağırmanın sonucunu yazdırın
Object Oriented Programming 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ı2Sı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şisi