Setter
- Java kursu
- Orta seviye
- Ders 26/116
- 5 dk
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
// Student sınıfını tanımla
// private age alanı, getter ve setter ekle
// setter içinde doğrulama yapÖrnek çözüm
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
void setAge(int a) {
if (a >= 0) ____ = a;
}
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 |