this()
- Java kursu
- Orta seviye
- Ders 10/116
- 5 dk
this() ile yapıcı çağırmayı öğrenirsin.
this() ile zincirleme
Bir yapıcının içinden aynı sınıftaki başka bir yapıcıyı this(...) ile çağırabilirsin. Buna yapıcı zincirleme denir. this() çağrısı yapıcı gövdesinin ilk satırı olmalıdır; aksi halde derleme hatası verir.
Örnek: class Box { int size; Box() { this(1); } Box(int s) { size = s; } }. Burada parametresiz yapıcı this(1) ile ikinci yapıcıyı çağırır. Bu yöntem, kod tekrarını önler; ortak mantık tek yapıcıda toplanır, diğerleri onu çağırır. Bakım daha kolaydır.
Neden this() kullanılır?
this() kod tekrarını azaltır. Bir yapıcıda yazdığın atama mantığını başka bir yapıcıda tekrar yazmak yerine this() ile onu çağırırsın. Tüm ortak mantık tek yerde kalır; değişiklik tek noktadan yapılır.
Örnek: Box() ve Box(int s) yapıcıları olsun. Box() içine size = 1; yazmak yerine this(1) yazarsın. size ataması yalnızca Box(int s) içinde kalır. size atama mantığı değişirse tek yapıcı güncellenir; iki yerde değişiklik yapılmaz.
Uygulama Box sınıfına this() ekle
Box adında bir sınıf tanımla. İçine int size alanını ekle. İki yapıcı yaz: birincisi Box(int s), gövdesinde size = s; ata; ikincisi Box(), gövdesinde this(1) ile birinciyi çağır. main içinde her iki yapıcıyı da çağır, size alanlarını ayrı satırlarda yazdır.
Başlangıç kodu
// Box sınıfını tanımla
// this() ile zincirleme yap
// main içinde ikisini de çağırÖrnek çözüm
class Box {
int size;
Box(int s) {
size = s;
}
Box() {
this(1);
}
public static void main(String[] args) {
Box a = new Box();
Box b = new Box(5);
System.out.println(a.size);
System.out.println(b.size);
}
}Beklenen çıktı
1 5
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 this() çağrısını tamamla
class Box {
int size;
Box() {
____(1);
}
Box(int s) { size = s; }
}
class Box {
int size;
Box() {
this(1);
}
Box(int s) { size = s; }
}
Açıklama: this(1) ile ikinci yapıcı çağrılır.
2 this() ilkelerini eşle
| Kavram | Anlamı |
|---|---|
this() |
Yapıcı çağrısı |
ilk satır |
Konum ilkesi |
this(1) |
Parametreli çağrı |
kod tekrarı |
Önlenen sorun |
3 this() çağrısı nerede olmalıdır?
- Sınıf dışında
- Gövdenin ilk satırında Doğru cevap
- Gövdenin ortasında
- Gövdenin son satırında
Açıklama: Gövdenin ilk satırında — this() ilk satırda olmalı.