Bu yazımda biri default olmak üzere iki adet constructor kullanımı bize ne fayda sağlar onu anlatacağım.Öncelikle Kisi diye bir sınıfım var içerisinde ad,soyad ve yaş bilgilerini tutuyor.İkinci sınıfım olan test sınıfı içerisinde ise Kisi sınıfından iki farklı şekilde nesne oluşturup değer atama işlemini nasıl yaparım onu açıklamaya çalıştım.
public class Kisi {
private String ad;
private String soyad;
private int yas;
public Kisi(String ad, String soyad, int yas) {
this.ad = ad;
this.soyad = soyad;
this.yas = yas;
}
public Kisi(){
}
public String getAd() {
return ad;
}
public void setAd(String ad) {
this.ad = ad;
}
public String getSoyad() {
return soyad;
}
public void setSoyad(String soyad) {
this.soyad = soyad;
}
public int getYas() {
return yas;
}
public void setYas(int yas) {
this.yas = yas;
}
}
public class Test {
public static void main(String[] args) {
//default constructor kullanarak oluşturduğum nesne
Kisi k1=new Kisi();
k1.setAd("Emrah");
k1.setSoyad("Kahraman");
k1.setYas(20);
//override edilmiş constructor kullanarak oluşturduğum nesne
Kisi k2=new Kisi("Olcay","Kahraman",18);
}
}
sezer
20/11/2010 — 00:27
merhaba benim bir sorum olacak;
test class’ında ad soyad ve yas değerlerini ekrana yazdırmam için ne yapmam gerekiyor?
yardımlarınız için teşekkürler
Emrah Kahraman
20/11/2010 — 15:27
Eclipse kullanıyorsan Kisi sınıfı içinde sağ tıklayıp Source bölümünde Generate toString() butonuna basarsan ve açılan pencerede ok deyip daha sonra Test sınıfı içinde aşağıdaki kodu yazıp çalıştırdığında ekrana oluşturduğun k1 nesnesinin içeriğini yazacaktır.
System.out.println(k1.toString());
toString() metodunu gerçekleştirmeden direk test sınıfı içerisinde
System.out.println(k1.getAd());
yazarakta ad bilgisine ulaşabilirsin ben burda ad bilgisine ulaştım sen isteğine göre yas ve soyadıda yazdırabilirsin.
Emrah Kahraman
20/11/2010 — 15:34
Kodu çalıştırdığında ekran çıktısı şöyle olur.
Kisi [ad=Emrah, soyad=Kahraman, yas=20]
Emrah
sezer
20/11/2010 — 00:42
ayrıca bi sorum daha olucak
Kisi sınıfında neden “this” kullandık? this kullanmanın amacı nedir?
teşekkürler
Emrah Kahraman
20/11/2010 — 15:32
Constructor’a parametre gelen değişkenler ile sınıf içerisindeki değişkenlerin aynı olması sebebiyle sınıf içindeki değişkene ilk değer ataması yapıldığını belirtmek için başına this kullanırız.
Eğer constructor şöyle olsaydı this yazmamıza gerek yoktu.
public Kisi(String name, String surname, int age) {
ad = name;
soyad = surname;
yas = age;
}
elif
20/11/2010 — 17:41
çok sağolun,çok faydalı oldu,ellerinize sağlık..
sezer
21/11/2010 — 21:59
çok teşekkür ederim cevaplarınız ve yardımlarınız için
gizem
15/03/2013 — 11:25
Benim de bir sorum olacak ,overloaded constructor kullanırken oluşturacağım objeleri kullanıcıdan alırsam hangisine göre oluşturacağımı nasıl kontrol edeceğim? Örneğin birincisi sadece isimle oluşturulsun diğeri isim soyisim alsın ,kullanıcı soyisim girmek istiyormusun sorusuna evet derse nasıl ikinci constructora göre oluşturulacak? şimdiden çok teşekkür ederim bu blogdan çok şey öğrendim..