Java
Özet - Yapıcı
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.
Örnek çözümü göster
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);
}
}
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.
Örnek çözümü göster
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);
}
}
Kendini test et
-
Bir sınıfta yapıcı tanımlanmadıysa ne olur?
- Derleme hatası verir
- Java boş varsayılan yapıcı ekler
- Sınıf çalışmaz
- Tüm alanlar silinir
Cevabı göster
Java boş varsayılan yapıcı ekler — Java boş varsayılan yapıcı ekler — new ile çağrı çalışır.
-
this() çağrısını tamamla
class Timer {
int seconds;
Timer(int s) { seconds = s; }
Timer() {
____(60);
}
}
Cevabı göster
class Timer {
int seconds;
Timer(int s) { seconds = s; }
Timer() {
this(60);
}
}
Sıradaki ders: extends