CodeBlanks Logo Icon CodeBlanks

Özet - Encapsulation

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

Main.java
// BankAccount sınıfını tanımla
// private balance, getter ve deposit ekle
// main içinde örnekle ve yazdır

Örnek çözüm

Main.java
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

Main.java
// Temperature sınıfını tanımla
// private celsius, getter ve setter ekle
// setter içinde doğrulama yap

Örnek çözüm

Main.java
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

Soru
public double getBalance() {
    ____;
}
Cevap
public double getBalance() {
    return balance;
}

Açıklama: Getter alanın değerini döndürür.

Orta seviye bölümündeki tüm dersler