CodeBlanks Logo Icon CodeBlanks

Setter

setX ile ayarlayıcı ve doğrulamayı öğrenirsin.

Setter metodu

Bir private alanın değerini değiştirmek için bir setter metodu yazılır. Setter, void döndürür, parametre alır ve set önefiyle isimlendirilir. Setter içinde doğrulama yapılabilir; geçersiz değerler reddedilir.

Örnek: void setAge(int a) { if (a >= 0) age = a; }. Burada setter, negatif yaş değerlerini reddeder. Doğrudan age = -5 yazılamaz; setter üzerinden setAge(-5) çağrılsa bile değer atanmaz. Bu, verinin her zaman geçerli kalmasını sağlar. Setter, veri değişikliğini tek noktadan denetler; encapsulation'ın gücüdür.

Setter ile doğrulama

Setter, veri değişikliği sırasında doğrulama yapma fırsatı sunar. Parametre değeri kontrol edilir; geçerliyse alana atanır, değilse reddedilir veya varsayılan değer atanır. Bu, sınıfın değişmezlerini korur.

Örnek: Bir Temperature sınıfında setCelsius(double c) metodu c değerini mutlak sıfırın altında reddedebilir: if (c >= -273.15) celsius = c;. Bu doğrulama, sınıfın her zaman fiziksel olarak anlamlı kalmasını sağlar. Doğrulama mantığı setter içinde tek yerde durur; sınıfın başka yerlerinde tekrarlanmaz. Encapsulation olmadan bu denetimi her atamada ayrı ayrı yapmak gerekirdi.

Uygulama Student sınıfına setter ekle

Student adında bir sınıf tanımla. İçine private int age alanını ekle. public int getAge() getter'ını yaz; age döndürsün. void setAge(int a) setter'ını yaz; gövdesinde if (a >= 0 && a <= 150) age = a; yaz. main içinde bir Student örneği oluştur, setAge(20) çağır ve getAge() sonucunu yazdır.

Başlangıç kodu

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

Örnek çözüm

Main.java
class Student {
    private int age;
    public int getAge() {
        return age;
    }
    void setAge(int a) {
        if (a >= 0 && a <= 150) age = a;
    }
    public static void main(String[] args) {
        Student s = new Student();
        s.setAge(20);
        System.out.println(s.getAge());
    }
}

Beklenen çıktı

20

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Setter içinde doğrulama ne işe yarar?

  • Geçersiz değerleri engeller Doğru cevap
  • Metodu hızlandırır
  • Alanı siler
  • Metodu gizler

Açıklama: Setter içinde doğrulama, geçersiz değerlerin atanmasını engeller.

2 Setter doğrulamasını tamamla

Soru
void setAge(int a) {
    if (a >= 0) ____ = a;
}
Cevap
void setAge(int a) {
    if (a >= 0) age = a;
}

Açıklama: Yaş negatif değilse age alanına atanır.

3 Setter bölümlerini eşle

Kavram Anlamı
void Dönüş türü
setAge Metot ismi
int a Parametre
if (a >= 0) Doğrulama

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