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