Özet - Öğrenci Notu
Coddy'nin Lua Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 18 / 70.
Görev
KolayBu bölümde öğrendiğin her şeyi bir araya getiren eksiksiz bir Student sınıfı oluşturalım: örnek değişkenler, getter'lar, setter'lar ve hesaplanan özellikler hep birlikte çalışacak!
Kodunu iki dosyada düzenleyeceksin:
Student.lua: Standart prototype pattern'i kullanarakStudentsınıfını tanımla. Her öğrenci birnameve birgradesaklamalıdır. Sınıfının şunlara ihtiyacı var:- Bir
:new(name, grade)constructor'ı - Student öğrencisinin adını döndüren bir
:getName()getter'ı - Mevcut notu döndüren bir
:getGrade()getter'ı - Notu güncelleyen bir
:setGrade(newGrade)setter'ı - Student öğrencisinin notu threshold değerinden büyük veya eşitse
true, aksi takdirdefalsedöndüren bir:hasPassed(threshold)method'u
- Bir
main.lua: Student module'ünü Require et ve bir öğrenci oluşturarak, durumunu kontrol ederek, notunu güncelleyerek ve değişiklikleri doğrulayarak tüm işlevleri göster.
Dört input alacaksın:
- Student öğrencisinin adı
- Başlangıç notu
- Kontrol edilecek geçme threshold değeri
- Ayarlanacak yeni not
main dosyanda, verilen ad ve başlangıç notuyla bir öğrenci oluştur; ardından aşağıdakileri ayrı satırlarda Print et:
- Student öğrencisinin adı
- Student öğrencisinin başlangıç notu
- Student öğrencisinin verilen threshold değeriyle passed olup olmadığı (
trueveyafalsePrint et) - Yeni notla update ettikten sonra Student öğrencisinin notu
- Not update edildikten sonra aynı threshold değeriyle Student öğrencisinin passed olup olmadığı
Örneğin input'lar Emma, 55, 60 ve 75 ise output şöyle olmalıdır:
Emma
55
false
75
trueEmma'nın başlangıçta 55 notu vardı ve bu, 60 olan geçme threshold değerini karşılamıyordu. Notu 75'e update edildikten sonra artık passed oluyor!
REQUIRED OUTPUT FORMAT:Kendin dene
-- Student modülünü gerektir
local Student = require('Student')
-- Girdileri oku
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())
-- TODO: Verilen isim ve başlangıç notu ile bir öğrenci oluştur
-- TODO: Getter kullanarak öğrencinin ismini yazdır
-- TODO: Getter kullanarak öğrencinin başlangıç notunu yazdır
-- TODO: Öğrencinin verilen eşikle geçip geçmediğini kontrol et ve yazdır
-- TODO: Setter kullanarak öğrencinin notunu güncelle
-- TODO: Öğrencinin yeni notunu yazdır
-- TODO: Not güncellemesinden sonra öğrencinin geçip geçmediğini kontrol et ve 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 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