Özet - Öğrenci Notu
Coddy'nin Lua Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 18 / 70.
Görev
KolayBu bölümde öğrendiğiniz her şeyi —örnek değişkenleri, getter'lar, setter'lar ve hesaplanmış özellikler— bir araya getiren eksiksiz bir Student sınıfı oluşturalım!
Kodunuzu iki dosya halinde düzenleyeceksiniz:
Student.lua: Standart prototip desenini kullanarakStudentsınıfınızı tanımlayın. Her öğrenci birnameve birgradesaklamalıdır. Sınıfınız şunlara ihtiyaç duyar:- Bir
:new(name, grade)yapıcı metodu (constructor) - Öğrencinin adını döndüren bir
:getName()getter metodu - Mevcut notu döndüren bir
:getGrade()getter metodu - Notu güncelleyen bir
:setGrade(newGrade)setter metodu - Öğrencinin notu eşik değerine (threshold) eşit veya ondan büyükse
true, aksi takdirdefalsedöndüren bir:hasPassed(threshold)metodu
- Bir
main.lua: Student modülünüzü dahil edin (require) ve bir öğrenci oluşturarak, durumunu kontrol ederek, notunu güncelleyerek ve değişiklikleri doğrulayarak tüm işlevselliği gösterin.
Dört girdi alacaksınız:
- Öğrencinin adı
- Başlangıç notu
- Kontrol edilecek geçme eşiği
- Ayarlanacak yeni not
Ana dosyanızda, verilen isim ve başlangıç notuyla bir öğrenci oluşturun, ardından aşağıdakileri ayrı satırlara yazdırın:
- Öğrencinin adı
- Öğrencinin başlangıç notu
- Öğrencinin verilen eşik değeriyle geçip geçmediği (
trueveyafalseyazdırın) - Yeni notla güncellendikten sonra öğrencinin notu
- Not güncellemesinden sonra öğrencinin aynı eşik değeriyle geçip geçmediği
Örneğin, girdiler Emma, 55, 60 ve 75 ise çıktı şöyle olmalıdır:
Emma
55
false
75
trueEmma'nın başlangıçta 55 olan notu 60 olan geçme eşiğini karşılamıyordu. Notunu 75 olarak güncelledikten sonra artık geçiyor!
Kendin dene
-- Student modülünü dahil et
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şturun
-- TODO: Getter metodunu kullanarak öğrencinin ismini yazdırın
-- TODO: Getter metodunu kullanarak öğrencinin başlangıç notunu yazdırın
-- TODO: Öğrencinin verilen eşik değerine göre geçip geçmediğini kontrol edin ve yazdırın
-- TODO: Setter metodunu kullanarak öğrencinin notunu güncelleyin
-- TODO: Öğrencinin yeni notunu yazdırın
-- TODO: Not güncellemesinden sonra öğrencinin geçip geçmediğini kontrol edin ve 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 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şisi