Özet - Yapıcı
- Java kursu
- Orta seviye
- Ders 12/116
- 5 dk
Parametreli yapıcı ve this()'i birleştirerek bir Product sınıfı yazarsın.
Özet - Yapıcı
Bu grupta yapıcı temellerini, parametreli yapıcıyı, aşırı yüklemeyi, this() ile zincirlemeyi ve varsayılan yapıcıyı öğrendin. Yapıcı, örneğin oluşturulurken ilk değer almasını sağlar; ismi sınıf ismiyle aynıdır, dönüş türü yoktur.
Şimdi tüm bunları bir araya getireceksin: bir sınıf tanımla, birden çok yapıcı ekle, this() ile zincirle ve örnekleri yazdır. Yapıcılar, nesne yönelimli tasarımda temiz bir başlangıç sağlar; elle alan atamasını azaltır.
Uygulama Timer sınıfını tanımla
Timer adında bir sınıf tanımla. İçine int seconds alanını ekle. İki yapıcı yaz: birincisi Timer(int s), seconds = s; ata; ikincisi Timer(), this(60) ile birinciyi çağır. main içinde her iki yapıcıyı da çağır, seconds alanlarını ayrı satırlarda yazdır.
Başlangıç kodu
// Timer sınıfını tanımla
// iki yapıcı ve this() ekle
// main içinde ikisini de çağırÖrnek çözüm
class Timer {
int seconds;
Timer(int s) {
seconds = s;
}
Timer() {
this(60);
}
public static void main(String[] args) {
Timer a = new Timer();
Timer b = new Timer(30);
System.out.println(a.seconds);
System.out.println(b.seconds);
}
}Beklenen çıktı
60 30
Sırada ne var?
Yapıcıları öğrendin. Sonraki gruplarda miras (inheritance) ile sınıflar arasında kod paylaşmayı, üst sınıf yapıcısı çağrısını (super) ve metot geçersiz kılmayı (override) göreceksin. Bunlar, sınıf hiyerarşilerinin temelidir.
Bu grup; yapıcı tanımı, parametreli çağrı, aşırı yükleme ve this() zincirini birleştirdi. Bunlar nesne oluşturmanın temelidir. Bir sonraki adımda miras ile sınıflar arası ilişki kuracaksın; üst sınıfın alan ve metotlarını alt sınıfa aktaracaksın.
Uygulama Counter sınıfını tanımla
Counter adında bir sınıf tanımla. İçine int count alanını ekle. İki yapıcı yaz: birincisi Counter(int c), count = c; ata; ikincisi Counter(), this(0) ile birinciyi çağır. public String toString() metodunu ekle; "Sayaç: " + count döndürsün. main içinde her iki yapıcıyı da çağır, her örneği println ile yazdır.
Başlangıç kodu
// Counter sınıfını tanımla
// iki yapıcı, this() ve toString ekle
// main içinde örnekle ve yazdırÖrnek çözüm
class Counter {
int count;
Counter(int c) {
count = c;
}
Counter() {
this(0);
}
public String toString() {
return "Sayaç: " + count;
}
public static void main(String[] args) {
Counter a = new Counter();
Counter b = new Counter(5);
System.out.println(a);
System.out.println(b);
}
}Beklenen çıktı
Sayaç: 0 Sayaç: 5
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir sınıfta yapıcı tanımlanmadıysa ne olur?
- Derleme hatası verir
- Java boş varsayılan yapıcı ekler Doğru cevap
- Sınıf çalışmaz
- Tüm alanlar silinir
Açıklama: Java boş varsayılan yapıcı ekler — new ile çağrı çalışır.
2 this() çağrısını tamamla
class Timer {
int seconds;
Timer(int s) { seconds = s; }
Timer() {
____(60);
}
}
class Timer {
int seconds;
Timer(int s) { seconds = s; }
Timer() {
this(60);
}
}
Açıklama: this(60) ile parametreli yapıcı çağrılır.