Yapıcı metotlar

Nesne Tabanlı Programlama- Yalova MYO-Bilgisayar Programcılığı-2014
Yapıcı metotları farklı parametrelerle tanımlayabiliriz; diğer bir programda nesne oluştururken,
verdiğimiz parametre sayısına uygun olan yapıcı metot çağrılır.
Örnek-1:
public class Calisan
{
public int maas;
//tek parametreli yapıcı metot
public Calisan (int aylik)
{
maas = aylik;
}
//iki parametreli yapıcı metot
public Calisan (int haftalik, int sure)
{
maas = haftalik * sure;
}
}
Başka bir programdan bu sınıfa ait nesne oluşturmak istersek:
public class BaskaBirProgram
{//Calisan sınıfına ait nesne oluşturarak bu sınıfa ait değişkenlere ulaşılabilir, metotlar
//çağrılabilir
Calisan ayca = new Calisan (3000);//3000 TL maasli “ayca” nesnesi oluşturuldu
Calisan ece = new Calisan (500, 12);//500 TL haftalık primle 12 hafta çalışan “ece” nesnesi
}
Örnek-2:
Aşağıdaki programın ekran çıktısı nedir?
using System;
class Koordinat
{
public int x, y;
// Parametresiz yapıcı metot: Nesne oluşturulurken parametre verilmezse bu yapıcı
metot çağrılır
public Koordinat()
{
x = 0;
y = 0;
}
// 2 parametreli metot: this sözcüğü ile bu sınıfa ait değişkene ulaştığımızı
belirtiyoruz
public Koordinat(int x, int y)
{
this.x = x;
this.y = y;
}
}
Nesne Tabanlı Programlama- Yalova MYO-Bilgisayar Programcılığı-2014
class BaskaBirProgram
{
static void Main()
{
//nesne oluşturulurken o sınıfa ait uygun parametreli yapıcı metot çağrılır
Koordinat nokta1 = new Koordinat();
Koordinat nokta2 = new Koordinat(5, 3);
// nokta1 ve nokta2 nesneleri aracılığıyla x ve y değişkenlerine ulaşıp ekrana
//bastıralım:
Console.WriteLine("İlk noktanın koordinatları: " + nokta1.x + "," + nokta1.y);
Console.WriteLine("İkinci noktanın koordinatları:"+nokta2.x+"," + nokta2.y);
Console.ReadKey();
}
}
Ekran çıktısı:
İlk noktanın koordinatları: 0,0
İkinci noktanın koordinatları:5,3
Alıştırma:
Örnek 2’deki gibi bir kod yazınız:
İnsan adlı sınıfı yazınız, string tipinde isim adlı değişkeni ve int tipinde yaş adlı değişkeni olsun.
1)sadece isim verildiğinde, tek parametre (string) alıp, gerekli işlemleri yapan kurucu metodu;
2) isim ve yaş verildiğinde, iki parametre (string,int) alıp, gerekli işlemleri yapan kurucu metodu;
yazıp,
insan1 ve insan2 nesnelerini oluşturup, nesneler hk. bilgileri ekrana basınız.
İsmi verilen insanın ismini, ismi ve yaşı verilen insanın bu bilgilerini ekrana basınız.
Insan insan1 = new Insan ("Tarkan");
Insan insan2 = new Insan ("Ajda", 70);
şeklinde nesneler oluşturulunca, bu nesnelere ait isim ve yaş bilgilerini ekrana bastırınız.
Nesne Tabanlı Programlama- Yalova MYO-Bilgisayar Programcılığı-2014
Çözülmüş Başka Bir Örnek:
Hayvan adlı sınıfı yazınız, string tipinde isim adlı değişkeni ve int tipinde yaş adlı değişkeni olsun.
1)sadece isim verildiğinde, tek parametre (string) alıp, gerekli işlemleri yapan kurucu metodu;
2) isim ve yaş verildiğinde,iki parametre (string,int) alıp, gerekli işlemleri yapan kurucu metodu yazıp,
hayvan1 ve hayvan2 nesnelerini oluşturup, nesneler hk. bilgileri ekrana basınız.
İsmi verilen hayvanın ismini, ismi ve yaşı verilen hayvanın bu bilgilerini ekrana basınız.
using System;
class Hayvan
{
public int yas;
public string isim;
// Parametresiz yapıcı metot: Nesne oluşturken parametre verilmezse bu yapıcı metot
//çağrılır
public Hayvan()
{
isim = " ";
yas = 0;
}
//1 parametreli yapıcı metot
public Hayvan(string isim)
{
this.isim = isim;
this.yas=0;//değeri verilmeyen değişkeni de sıfıra eşitleyelim
}
// 2 parametreli yapıcı metot: this sözcüğü ile bu sınıfa ait değişkene ulaştığımızı
//belirtiyoruz
public Hayvan(string isim, int yas)
{
this.isim = isim;
this.yas = yas;
}
}
Burada sınıfı kapattık.
ulaşıyoruz:
Başka bir sınıfın içerisinden Hayvan isimli sınıfa
class BaskaBirProgram
{
static void Main()
{
Hayvan hayvan1 = new Hayvan("karabulut");//1 parametreli yapıcı metot çağrılır
Hayvan hayvan2 = new Hayvan("pamuk", 3);//2 parametreli yapıcı metot çağrılır
Hayvan hayvan3 = new Hayvan();//hangi yapıcı metot çağrılır?Parametresiz olan!...
// nesneler aracılığıyla sınıf değişkenlerine ulaşıp ekrana bastıralım:
Console.WriteLine("İlk hayvanımız: " + hayvan1.isim + "," + hayvan1.yas);
Console.WriteLine("İkinci hayvanımız:" + hayvan2.isim + "," + hayvan2.yas);
Console.WriteLine("Üçüncü hayvanımız: " + hayvan3.isim + "," + hayvan3.yas);
Console.ReadKey();
}
}
Ekran çıktısı:
İlk hayvanımız: karabulut,0
İkinci hayvanımız:pamuk,3
Üçüncü hayvanımız: ,0