Özet - Encapsulation
- Java kursu
- Orta seviye
- Ders 29/116
- 5 dk
private, getter ve setter'ı birleştirerek bir Account sınıfı yazarsın.
Özet - Encapsulation
Bu grupta private alanlarla encapsulation'ı, getter ve setter metotlarını, paket görünürlüğünü ve record tanımını öğrendin. Encapsulation, veriyi korur ve geçersiz atamaları önler.
Şimdi tüm bunları bir araya getireceksin: bir sınıf tanımla, private alanlar ekle, getter ve setter yaz, doğrulama yap. Encapsulation, sağlam sınıf tasarımının temelidir.
Uygulama BankAccount sınıfını encapsulation ile tanımla
BankAccount adında bir sınıf tanımla. İçine private double balance alanını ekle. public double getBalance() getter'ını yaz; balance döndürsün. void deposit(double amount) metodu ekle; if (amount > 0) balance += amount; yaz. main içinde bir BankAccount örneği oluştur, deposit(500) çağır ve getBalance() sonucunu yazdır.
Başlangıç kodu
// BankAccount sınıfını tanımla
// private balance, getter ve deposit ekle
// main içinde örnekle ve yazdırÖrnek çözüm
class BankAccount {
private double balance;
public double getBalance() {
return balance;
}
void deposit(double amount) {
if (amount > 0) balance += amount;
}
public static void main(String[] args) {
BankAccount acc = new BankAccount();
acc.deposit(500);
System.out.println(acc.getBalance());
}
}Beklenen çıktı
500.0
Sırada ne var?
Encapsulation'ı öğrendin. Sonraki gruplarda static üyelerle sınıf düzeyinde veriyi, sabitler ile değişmez değerleri ve interface ile sözleşme tanımlamayı göreceksin. Bunlar, sınıf tasarımının bir sonraki katmanıdır.
Bu grup; private, getter, setter, paket görünürlüğü ve record kavramlarını birleştirdi. Bunlar veri korumanın temelidir. Bir sonraki adımda static ile sınıf düzeyinde paylaşılan alan ve metotları keşfedeceksin; örneklerin ötesinde sınıfa ait verilerle çalışacaksın.
Uygulama Temperature sınıfını encapsulation ile tanımla
Temperature adında bir sınıf tanımla. İçine private double celsius alanını ekle. public double getCelsius() getter'ını yaz; celsius döndürsün. void setCelsius(double c) setter'ını yaz; gövdesinde if (c >= -273.15) celsius = c; yaz. main içinde bir Temperature örneği oluştur, setCelsius(25.0) çağır ve getCelsius() sonucunu yazdır.
Başlangıç kodu
// Temperature sınıfını tanımla
// private celsius, getter ve setter ekle
// setter içinde doğrulama yapÖrnek çözüm
class Temperature {
private double celsius;
public double getCelsius() {
return celsius;
}
void setCelsius(double c) {
if (c >= -273.15) celsius = c;
}
public static void main(String[] args) {
Temperature t = new Temperature();
t.setCelsius(25.0);
System.out.println(t.getCelsius());
}
}Beklenen çıktı
25.0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Encapsulation neyi sağlar?
- Veri korunur Doğru cevap
- Kod hızlanır
- Metot gizlenir
- Sınıf silinir
Açıklama: Veri korunur — encapsulation veri bütünlüğünü güvence altına alır.
2 Getter gövdesini tamamla
public double getBalance() {
____;
}
public double getBalance() {
return balance;
}
Açıklama: Getter alanın değerini döndürür.