1~

Minter Coder's Blog

Ders 33 - Constructor(Yapıcılar)

2021-04-06

Arkadaşlar merhabalar bu konuda Constructorlara değineceğiz.Constructor kısaca nedir ?

Öncelikle constructor da bir methoddur fakat bu özel bir methoddur ve bu methodun ismi class ismi ile eşleşmelidir.Constructorlar bir yeni nesne creating edildiğinde kullanılır.Bu işlem initialization olarak adlanır çünkü sınıfın bir yeni örneğini yaratır.Constructor biz new den sonra classın adını yazdığımızda çağrılır örneğin;
new Lion()

Java new keywordünü gördüüğünde bellekte yeni nesne için yer ayırır.

Not : this.name bu javaya sizin örnek değişkenlri istediğinizi söyler hemen örnekler;

class Lion {
    private String name; // instance variable
    // Lion constructorumuz aşağıda
    Lion(String name){ 
    // aşağıda this.name kısmı yukarıda bizim instance variablemize işaret eder diğer name ise parametreye.
        this.name = name;
    }
}

Default constructor : Default constructor(varsayılan constructor) , eğer ki siz bir classta herhangi bir constructor dahil etmezseniz java onu sizin için herhangi bir parametre olmadan oluşturacaktır.Bu javanın oluşturduğu constructora default constructor denir.

class Lion {
    public static void main(String[] args) {
        Lion l = new Lion(); // default constructoru çağırır.
    }
}

Overloading constructors : Overloading bir methoda parametrelerinin farklı typeda eklenmesi işlemine denir.Hemen aşağıya overloading constructor ekliyorum.

class Lion {
    private int age;
    private String name;
    Lion(int age){
        this.age = age;
    }
    Lion(int age,String name){
        this.name = name;
        this.age = age;
    }
}

Yukarıda dikkat edeceğiniz gibi iki adet constructorumuz var ve bunlardan birine 2 adet diğerine bir adet parametre eklenmiş Lion classının constructorları o zaman overload oldu yani aşırı yüklenildi.

Peki biz nasıl bir constructor içerisinden diğer constructora ulaşırız yada onu nasıl çağırırız ?

Bunu this keywordü ile yapabiliriz hemen şöyle ;

Lion(int age){
    this.age = age;
}
Lion(int age,String name){
    this(age);
    this.name = name;
}

yada

Lion(int age){
    this(age,"Puppy");
}
Lion(int age,String name){
    this.age = age;
    this.name = name;
}

Yukarıda gördüğünüz gibi birinci code snippetde ikinci constructordan birinci constructoru çağırdık , diğerinde ise birinci constructordan ikinci constructoru çağırdık.Önemli nokta ; bu this keywordü her zaman birinci line(satıra) yazılmalıdır.Bir constructor içerisinden diğer bir constructor çağırma işlemine constuctor chaining denir.Yukarıda yaptığımız işleme de constructor chaining denir.Birinden diğerini çağırma işlemi.