C# Classes - Constructor - Properties - Inheritance - Polymorphism
C# OOP - SOLID
OOP (Object Oriented Programming) Nedir ?
Nesne Tabanlı Programlama hem verileri hem de yöntemleri içeren nesneler oluşturmakla ilgilidir.
Nesne yönelimli programlama da 3 ana ilke bulundurmaktadır.
- Encapsulation (Kapsülleme)
- Inheritance (Kalıtım)
- Polymorphism (Çok biçimlilik)
SOLID Yazılım Geliştirme Prensipleri Nedir ?
Programın yapısı ve kod bakımından özverili, anlaşılır, sürdürülebilirlik, geliştirilebilirlik konusunda bir bakıma iyileştirme görevi üstlenir. Bu prensipler şu şekilde açıklana bilir ;
- Single Responsibility Principle : Her method ve class’ın tek bir görevi, işi ve sorumluluğu vardır
- Open Closed Principle : Her method ve class özelliklerini korumalıdır, değişime kapalı olması gerekir.
- Liskov Substitution Principle : Alt sınıflardan oluşturulan nesnelerin üst sınıfların nesneleri yerine kullanılabilir olmalıdır.
- Interface Segregation Principle : Bütün metodlara hizmet eden tek bir interface kullanılması yerine, özelleştirilmiş bir çok interface oluşturulmalıdır.
- Dependency Inversion Principle : Sınıflar arası bağımlılıklar olabildiğince az olmalıdır.
Constructor (Yapıcı) Nedir ?
Constructor, oluşturulan nesneyi kullanıma hazırlama görevini üstlenir. Ayrıca Constructor, bir sınıfın nesnesi oluşturulduğunda çağırılması gibi avantajı vardır.
Class Örneği :
Çıktı (Output) :
Constructor Parametreleri :
Bu örnekde,
- Constructor bir dize softwareUsed parametresi eklenmiştir “public Program(string softwareUsed)”.
- Constructor içinde languageName, softwareUsed “languageName = softwareUsed” olarak tanımlandı.
- Constructor çağırıldığında, languageName değerini “C Sharp”olarak çıktı vericek bir parametre iletilir.
Çıktı (Output) :
* Birden fazla parametre ile çalışılabilinir
Çıktı (Output) :
Properties
Encapsulation (Kapsülleme) Nedir ?
Nesne yönelimli programlama da 3 ana ilkesinden biridir. Nesnelerin özelliklerine, değişkenlerin ve metot yapılarının dışarıdan kontrollü erişimini sağlamak veya bu nesnelerin özelliklerini kontrollü bir şekilde muhafaza etmek için kullanılır.
Properties Yapısı
Properties, get ve set anahtar kelimelerinden oluşur. Get metodu veri okuması (çağırması) gerçekleştirirken, Set metodu ise veri yazılması(atama yapılması) gerçekleştirir.
Property Örneği :
Person.cs
Person Class’ı oluşturuldu ve public olarak tanımlandı. Person class’ına Department ve Title isimleride iki adet properties tanımlandı.
Program.cs
new Person();
ile userDepartment objesi oluşturuldu.userDepartment.Department
ile oluşturulan objenin içerisindeki Departmant adındaki propery ‘Bilgi İşlem’ verisi eklendi.Console.WriteLine();
ile userDepartment objesindeki Department property içerisindeki veri yazdırılmış oldu.
Çıktı (Output)
Inheritance (Kalıtım) Nedir ?
Nesne yönelimli programlama da 3 ana ilkesinden biridir. Metotları bir sınıftan diğerine miras almak mümkündür. Bir sınıfa başka bir sınıfın mirası tanımlandığı zaman, miras alınan sınıfın özelleri verilmiş olur. Türetilmiş Sınıf (alt), Temel Sınıf (üst) olmak üzere iki adet inheritance vardır.
- Türetilmiş Sınıf (Derived Class) : Başka bir sınıftan miras alan sınıf.
- Temel Sınıf (Base Class) : Miras alınan sınıf
Bir sınıfı (class) miras almak için [:
] sembolü kulanılır.
Inheritance Örneği :
Department.cs
Department klasının içerisine personDepartment isimli field ve methodName ismi ile metot tanımlandı ve verileri girildi.
Title.cs
Title klasının içerisine personTitle isimli field tanımlanarak verisi girildi. Sonrasında Title kalsına : Depatment
ile Department klası Inheritance (miras) tanımlandı.
Program.cs
Çıktı (Output)
Polymorphism (Çok biçimlilik) Nedir ?
Nesne yönelimli programlama da 3 ana ilkesinden biridir. Inheritance yoluyla birbiriyle ilişkili birçok sınıf olduğunda kullanılır. Farklı görevleri gerçekleştirmek için gereklidir.
Temel sınıfa [virtual
] , Türetilmiş sınıflara [override
] kullanılarak gerçekleştirilir.
Polymorphism Kullanılmayan Örnek :
Çıktı (Output) :
Polymorphism Kullanılan Örnek :
Çıktı (Output) :