Constructor(Yapıcı)

Selamlar,

 Nesne yönelimli programlama mantığında bir nesnenin oluşturulması sırasında  constructor  ilk çalışan metoddur. Yapılandırıcı metotlar nesne oluşturduğumuz anda çalıştırılan metotlardır. Herhangi bir geri dönüş tipi yoktur. Evet, ilginç ama void tipinde dahi bir geri dönüşü yoktur. Bir yapılandırıcının yaptığı iş, bir nesneyi ilk kullanıma hazırlamaktır.

Yapılandırıcı özellikleri şunlardır;

    1. Yapilandiricilar private dahil tum access modifier /erisim belirteclerini kullanabilirler.
    2. Yapılandırıcılar her çağrılışlarında yeni bir nesne oluştururlar.
    3. Yapılandırıcı metot çağrılırken new anahtar sözcüğü kullanılır.
    4. Eger kendimiz bir yapilandirici tanimlarsak , varsayilan yapilandirici otomatik olarak tanimlanmaz.

3 tip constructors vardır.

DEFAULT CONSTRUCTORS (varsayılan yapılandırıcı)

    Sınıfınızda herhangi bir yapılandırıcı uygulamıyorsanız, Java derleyicisi sizin adınıza  varsayılan bir yapılandırıcı ekler. Bu yapılandırıcı varsayılan yapılandırıcı olarak bilinir.

Örnek:

public class Araba{

//Default yapılandırıcı method
Araba() {
}
//Siz oluşturmazsanız derleyicinin oluşturduğu yapılandırıcı

public static void main(Strings[]Args){
Araba obj = new Araba();
}
.....
}

No-Arg Constructor

    Argümanı olmayan yapılandırıcı, argümansız yapılandırıcı olarak bilinir. İmza, default yapılandırıcı ile aynıdır, ancak gövdenin, yapılandırıcının gövdesinin boş olduğu varsayılan yapılandırıcıdan farklı herhangi bir kodu olabilir.

ÖRNEK:

class abc
{
public abc()
{
System.out.println("argüman olmayan const");
}
public static void main(String args[]) {
new abc();
}
}

Parameterized constructor(Parametreli Yapılandırıcı)

Argümanlı yapılandırıcı, parametreli constructor olarak bilinir.

ÖRNEK:

public class isci{

int isciId; 
String isciAdi; 


isci(int id, String adi){ 
this.isciId = id; 
this.isciName = adi; 
} 
void info(){
System.out.println("Id: "+isciId+" adi: "+isciName);
} 

public static void main(String args[]){ 
Employee obj1 = new isci(10,"Ali"); 
Employee obj2 = new isci(92,"Veli"); 
obj1.info(); 
obj2.info(); 
} 
}

ÇIKTI:

Id: 10 adi: Ali
Id: 92 adi: Veli

 Programımızda içinde farklı sayıda parametre bulunduran constructor tanımlaya biliriz.

Genel Örnek

  Account Sınıfı

package constructor;

public class Account {

private String hesapNo;
private double bakiye;
private String isim;
private String eMail;
private String telefonNo;


public Account() //Parametresiz  counstructor
{
System.out.println("Kendi yazdığımız Constructor..");
}

public Account(String hesapNo , int bakiye ,String isim , String eMail , String telefonNo) {
//İçinde Account sınıfının bütün parametrelerini bulunduran constructor method
this.hesapNo=hesapNo;
this.bakiye=bakiye;
this.isim=isim;
this.eMail=eMail;
this.telefonNo=telefonNo;

}
public Account(String isim,String eMail,String telefonNo) 
{// Account sınıfının 3 değişkenini bulunduran constructor
this("Bilgi yok" ,1700 ,isim,eMail,telefonNo);


public void bilgileriGoster()
{
System.out.println("Hesap NO:"+ this.hesapNo);
System.out.println("Bakiye:"+ this.bakiye);
System.out.println("İsim:"+ this.isim);
System.out.println("Email adresi:"+ this.eMail);
System.out.println("Telefon Numarası:"+ this.telefonNo);

}
public String getHesapNo() {
return hesapNo;
}
public void setHesapNo(String hesapNo) {
this.hesapNo = hesapNo;
}

public String getIsim() {
return isim;
}
public void setIsim(String isim) {
this.isim = isim;
}
public String geteMail() {
return eMail;
}
public void seteMail(String eMail) {
this.eMail = eMail;
}
public String getTelefonNo() {
return telefonNo;
}
public void setTelefonNo(String telefonNo) {
this.telefonNo = telefonNo;
}

public double getBakiye() {
return bakiye;
}

public void setBakiye(double bakiye) {
this.bakiye = bakiye;
}





}

Bu şekilde tanımlanmış account sınıfının bir test sınıfı içinde çalıştırıp farklı parametre sayılarına sahip constructor metodlarını inceleyelim.

Test Sınıfı

package constructor;

public class Test {

public static void main(String[] args) {

Account account1 = new Account("12345", 1100," Alpay", "alpay.mail@gmail.com","1234567");
Account account2 = new Account("Alpay","alpay@gmail.com","0535505");
//Account1 nesnesine 5 parametresine 5 değişken gönderirken
//Account2 nesnesine 3 parametre değişkeni gönderiyoruz
account1.bilgileriGoster();
System.out.println("-----------------------------------------------------------------");
account2.bilgileriGoster();
}

}

Ekran Çıktısı:

Hesap NO:12345
Bakiye:1100.0
İsim: Alpay
Email adresi:alpay.mail@gmail.com
Telefon Numarası:1234567
-----------------------------------------------------------------
Hesap NO:Bilgi yok
Bakiye:1700.0
İsim:Alpay
Email adresi:alpay@gmail.com
Telefon Numarası:0535505

Bilgi paylaştıkça çoğalır paylaşarak destek ol.