Bu gece Java'da sınıf tanımalama ve tanımladığımız sınıftan nesneler üretmek üzerine paylaşımlar yaptım. Geceyi bir problemle sonlandıralım.
Örnek: Elma adında bir sınıfımız, bu sınıfın da 3 adet kurucusu (constructor) olsun. Elma sınıfından ürettiğimiz nesnelerin adedini nasıl takip edebiliriz?
Çözüm:
public class Elma {
static int nesneSayisi = 0;
//constructor'lar
public Elma() {
nesneSayisi++;
}
public Elma(int n) {
nesneSayisi++;
}
public Elma(String s) {
nesneSayisi++;
}
public static void main(String args[])
{
Elma elma1 = new Elma();
Elma elma2 = new Elma(1);
Elma elma3 = new Elma("tatlı");
System.out.println(Elma.nesneSayisi);
}
}
Çıktı: 3
Alternatif Çözüm: nesneSayisi değişkeninin değerini artırma işlemini constructor'lar yerine initialization block (IIB) (başlangıç bloğu) içerisinde de yapabilirdik. Buradaki süslü parantezlerin gerekli olduğunu da lütfen atlamayın.
public class Elma {
static int nesneSayisi = 0;
{
nesneSayisi++;
}
//constructor'lar
public Elma() {
}
public Elma(int n) {
}
public Elma(String s) {
}
public static void main(String args[])
{
Elma elma1 = new Elma();
Elma elma2 = new Elma(1);
Elma elma3 = new Elma("tatlı");
System.out.println(Elma.nesneSayisi);
}
}
Çıktı: 3