Nesneye Dayalı Programlama 1 Öğretim Görevlisi Alper Talha KARADENİZ
Özellikler (Property) Veri doğrulama, veri bütünlüğü ve public alanların güvenliği için C# özel yapıları sınıf üyesi olarak kabul etmiştir. Okunabilme (get) ve yazılabilme(set) yapıları özel bir blok içerisinde gösterilmektedir.
Özellikler (Property) class Ornek { private int yas; public int Yas get // okunabilme özelliği return yas; } set // değer atanabilme(yazılabilme özelliği) yas = value;
Özellikler (Property) class Program { static void Main(string[] args) Ornek o = new Ornek(); o.Yas = 30; Console.WriteLine(o.Yas); }
Sadece Okunabilir Özellikler (Property) NDP’de sarmalama amacıyla değerinin değiştirilmesi güvenlik açısından yasaklanmış sadece okunabilir alanlar oluşturulama istendiğinde get-set bloğunda sade get tarafı yazılmalıdır. class getProperty { private int yaricap = 20; public int Yaricap get return yaricap; }
class Program { static void Main(string[] args) getProperty gp = new getProperty(); G p.Yaricap = 100; // hata sadece değeri okunabilinir. Console.WriteLine(gp.Yaricap); }
Sadece Yazılabilir Özellikler (Property) Değerinin değiştirilmesi sadece yazılabilinir ancak okunamayab özellikler oluşturulmak istendiğinde get-set bloğunda sade set tarafı yazılmalıdır. class setProperty { private int m_A; public int A set m_A = value; }
Sadece Yazılabilir Özellikler (Property) class Program { static void Main(string[] args) setProperty sp = new setProperty(); sp.A = 200; Console.WriteLine(sp.A); // hata sadece değeri atabilinir. }
Özelliklerde (Property) Kalıtım Taban sınıfta tanımlanan property diğer sınıf üyelerinde olduğu gibi direk olarak türemiş sınıflara geçmektedir. Ancak kalıtım alan sınıfların gelen özellikleri değiştirmek istedikleri taktirde virtual tanımlaması yapılabilinir
class TemelSinif { public int X get { return 10; } set { Console class TemelSinif { public int X get { return 10; } set { Console.WriteLine("Temel Sınıftan kalıtım Yolu ile geçmiştir"); } } public virtual int Y get { return 20; } set { Console.WriteLine("Temel Sınıfta Y değeri 20 dir"); }
class TureyenSinif: TemelSinif { public override int Y get return 100; } set Console.WriteLine("Türemiş Sınıfta Y değeri 100 dür");
class Program { static void Main(string[] args) TureyenSinif tr = new TureyenSinif(); Console.WriteLine(tr.X); Console.WriteLine(tr.Y); }
Kaynaklar Öğr. Gör. Özgür Çiftçi Nesne Tabanlı Programlama Ders Notları