oop

C# - Destructors (Yıkıcı Metotlar)

Bir önceki yazıda yapıcı metotlardan bahsetmiştik. Bu yazıda ise yıkıcı metotları inceleyeceğiz. Bunlar bir nesne artık kullanımda olmadığında nesne bellekten temizlenmeden önce çalıştırılan metotlardır. Bu temizleme işlemini Garbage Collector (çöp toplayıcı) mekanizması yapar.

C# - Constructors (Yapıcı Metotlar)

Yapıcı metotlar nesne ilk oluşturulduğunda çalışırlar ve nesneyi bir nevi ilk kullanıma hazırlarlar. Bir sınıftan new anahtar kelimesi ile nesne oluşturulmadığı sürece çalışmazlar. Yapıcı metotlar sınıf ile aynı isme sahiptirler ve geriye bir veri döndürmezler.

C# - Interface (Arayüz) Kavramı

Arayüzler bir sınıfın sahip olması gereken özellikleri tanımlarlar. Arayüz içerisinde kod yazılmaz, sadece özellik ve metot imzaları verilir. Bir arayüzden miras alan sınıf arayüzün tüm metotlarını ezmek zorundadır. Arayüzlerden tıpkı soyut sınıflar gibi nesne referansları oluşturulamaz. Bir sınıf birden fazla arayüzden miras alabilir.

C# - Abstract (Soyut) Sınıf ve Metotlar

Yazdığımız bir sınıftan nesne referansı alınmasını istemediğimiz, yalnızca kalıtım yoluyla türetilmesini istediğimiz zamanlarda abstract anahtar kelimesini kullanırız. Soyut (abstract) olarak tanımlanan metotların ise içi doldurulmaz. Soyut sınıftan türetilen sınıf (derived class) bu metotları implement etmek zorundadır.

C# - Operator Overloading (Operatörlerin Aşırı Yüklenmesi)

Normal şartlarda sınıflar üzerinde operatör (- + / vs.) kullanılamaz fakat C# sınıfları operatörlere uygun hale getirmeye imkan veriyor. Sınıfın içine yazacağımız metotlar ile ilgili operatörün nesne için nasıl çalışacağını belirleyebiliyoruz. Bu işleme operatörlerin aşırı yüklenmesi (operator overloading) denir.

C# - Access Modifiers (Erişim Belirleyiciler)

Tanımladığımız nesnelerin, metotların ya da değişkenlerin kimler (kendisi, başka sınıflar, başka assembly'ler vs.) tarafından erişilebilir olduğunu belirttiğimiz ifadelere erişim belirleyiciler denir. Bu yaklaşım nesne yönelimli programlama dillerinin çoğunda (ezici çoğunlukla) vardır.

C# - Polymorphism (Çok Biçimlilik) Tekniği

Bir sınıf başka bir sınıftan türetildiğinde tüm özelliklerini miras alır. Türemiş sınıf içinde türetilen sınıftan gelen bazı özellikleri değiştirmek isteyebiliriz (ve yapabiliriz de). Sınıfın miras aldığı özelliklerin değiştirilebilmesine -ve nesne üzerinden çağrılabilmesine- çok biçimlilik denir.

C# - Inheritance (Kalıtım) Tekniği

Daha önceden oluşturduğumuz bir sınıfa ait özelliklerin -field, property, method vs.- ikinci bir sınıfta bulunması için kalıtım kullanırız. Türetilen sınıfa base class, türemiş sınıfa derived class denir. Derived class içinde base class'tan alınan özelliklere yenileri eklenebilir ya da değiştirilebilir.

C# - Encapsulation (Kapsülleme) Tekniği

Kapsülleme, sınıf içindeki değişkenlere erişimi kaldırmak ya da kısıtlamak için kullanılır. Önemli bir değişkeni public olarak tanımlamak, değişkene yazılımcı tarafından -bilinçli ya da bilinçsiz- müdahaleye açık hale getirir. Bu da sınıf içindeki metotların çalışmasını olumsuz etkileyebilir. Bu gibi durumların önüne geçmek için kapsülleme tekniği kullanılır.