Dikdörtgen Sınıfı
Coddy'nin Lua Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 56 / 70.
Görev
KolayŞimdi, önceki derste oluşturduğunuz temel Shape sınıfından miras alan bir Rectangle sınıfı oluşturarak Şekil Yöneticimizi genişletelim.
Kodunuzu düzenli tutmak için üç dosya ile çalışacaksınız:
Shape.lua: Önceki görevdeki temel Shape sınıfınız (:new(name)ve:getName()ile birlikte).Rectangle.lua: Shape sınıfından miras alan bir Rectangle sınıfı oluşturun. Yapıcı (constructor)widthveheightdeğerlerini kabul etmeli, üst yapıcıyı"Rectangle"ismiyle çağırmalı ve boyutları saklamalıdır. Dikdörtgenin alanını hesaplayan ve döndüren bir:getArea()metodu ekleyin.main.lua: Rectangle modülünüzü dahil edin (require), girdiden genişlik ve yüksekliği okuyun, bir Rectangle örneği oluşturun ve ismini ardından alanını ayrı satırlarda yazdırın.
Rectangle örneklerinin prototip zinciri üzerinden Shape'in metodlarına erişebilmesi için miras bağlantısını düzgün bir şekilde kurmayı unutmayın.
Girdi: İki satır—birincisi genişliği (sayı), ikincisi yüksekliği (sayı) içerir.
Çıktı: İki satır—:getName() metodundan gelen dikdörtgenin adı, ardından :getArea() metodundan gelen alanı.
Kendin dene
-- Rectangle modülünü dahil et
local Rectangle = require('Rectangle')
-- Girdiden genişlik ve yükseklik değerlerini oku
local width = tonumber(io.read())
local height = tonumber(io.read())
-- Verilen boyutlarla yeni bir Rectangle örneği oluştur
local rect = Rectangle:new(width, height)
-- Dikdörtgenin adını ve alanını yazdır
print(rect:getName())
print(rect:getArea())
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