C# Yapıları Öğrenelim – Ders 21

Bu yazımızda OOP, Constructors, Encapsulation, Polymorhism, Struct ve Enum terimleri nedir, nasıl kullanılır bundan bahsedeğiz.

1. OOP (Nesne Tabanlı Programlama)

  • Private (Gizli)
    Bir değerin private olarak tanımlanması demek, o değişkene sadece kendi class’ı içinden ulaşılabileceği anlamına gelmektedir. Program içinde kesinlikle değiştirilmemesi gereken, kritik kodlarda kullanılmaktadır.
    Ayrıca; private, varsayılan erişim belirleyici tipidir. Örneğin; “int deneme = 0;” gibi bir değişken tanımlandığında program tarafından deneme değeri privateolarak algılanmaktadır.
  • Public (Genel)
    Bir değerin public olarak belirtilmesi; o değerin, kod içinde herhangi bir yerden erişilebilir durumda olmasını sağlamaktadır. Public erişim belirleyici tipinde hiç bir kısıtlama yoktur.
  • Protected (Korunumlu)
    Kod içinde bir değerin protected olarak tanımlanması; o değere, bulunduğu class ve ondan türetilen diğer sınıflar içinden erişilebilir olduğunu göstermektedir. Protected; bir anlamda, public ve private erişim belirleyicilerinin birleşimi olarak görülebilmektedir.
  • Internal (İçsel)
    Internal olarak tanımlanan bir değer; aynı program içerisinden erişilebilir, fakat farklı bir program içerisinden erişilemez durumdadır. Program içerisinde herhangi bir kısıtlaması yoktur.
  • Protected Internal (İçsel Korunumlu)
    Protected internal olarak tanımlanmış değer, tanımlandığı class’ın içinden ve ondan türetilen sınıfların içinden erişilebilir durumdadır. Türetilen sınıfın aynı program içinde olmaması sorun teşkil etmez.
  • Eğer ki projenizin diğer class’larına ulaşabilmek için sınıfı public, yerel değişkenleri internal yapın.

OOP terimlerini öğrendik. Şimdi de biraz metotlara göz atalım.

2.Constructors (Yapıcı Metot)

  • Constructor
    Bir class’tan new anahtar sözcüğü ile nesne oluştururken ilk çalışan metottur. Her class’ın biz tanımlamasak bile kesin bir yapıcı metodu vardır. Bu metoda default ( varsayılan ) yani kurucu metot denir.
  • Destructor (Yıkıcı Metot)
    Nesnenin ölmeden önce son istediği. Ram’den silinmeden hemen önce yapılacak işlemlerdir. Destructor, birisi tarafından çağrılan bir metod olmadığı için, normal bir metot gibi tanımlanmaz. Overload olmaz metottur.

3. Encapsulation (Kapsülleme)

Field alanları, property’e dönüştürme gibidir

Örnek Kod

Auto Property → field’ı içinde olan property’dir. Faydası, tekrar field oluşturmayız. Böylelikle field kalabalığı oluşmamış olur. property field’ını kendi içinde oluşturur. (backing field)
Auto property içerisindeki get ve set komutlarının içinde komut olamaz, olursa auto property bozulur. get ve set silinemze silinirse auto property bozulur. Aşağıdaki gibi yazılmalıdır.
prop yazıp 2 kere TAB’a tıklayınca Visual Studio kendisi oluşturuyor.

Auto Property
Auto Property

4. Polymorhism (Çok Biçimlilik)

virtual: override edilebilen metodlar bununla tanımlanır.

override: base sınıftaki virtual metodları ezmek için kullanılan komuttur.
https://gelecegiyazanlar.turkcell.com.tr/konu/windows-phone/egitim/windows-phone-101/cokbicimlilik-polymorphism ]

5. Struct ve Enum

Struct: Class’ın basit hali, daha küçük halidir. Ram’de daha az yer kapladığı için, class’daki gibi miras, polimorfizm, constructor vs. yapılmayacaksa kullanılabilecek bir yapı. İlk önce struct var imiş, geliştirilmiş ve class olmuş.

Integer, string, double tipi bir struct’dır. Random bir class’dır.

Örnek Kod

ctor yazıp 2 kere tab yazınca constructor oluşuyor.

Örnek Kod

Object initializer yöntemi: objeyi new ile oluştururken değerlerini verme:

Yukarıda Ders’i new ile oluştururken, oluşturulan dersin ortalaması otomatik olarak hesaplanıyor. ogr.Ortalama() dediğimizde, zaten teker teker hesaplanan ortalamalar kullanılarak bütün derslerin ortalaması hesaplanır. [http://ercanbozkurt.blogspot.com.tr/2009/08/c-30-object-initializer.html ]

enum:

Programcının kullanması içindir. Uygulama tarafında combobox’da vs. kullanması için değildir. Programcının kolay anımsaması için.

enum olarak tanımladığım OgrenciDurum’u ogrenci sınıfı içinde bir Durum isminde property olarak yazıyorum.

Örnek Kod

switch yazıp 2 kere tab tuşuna basıyoruz. ogr.Durum yazıp enter’a basınca otomatik olarak case’leri üretir.

Kod

enum’ı cast edebiliriz. Her enum elemanına belli bir integer değer verilebilir. Verilen değer artırılarak diğer enum elemanlarına değer verilir.

[ https://medium.com/@learningzone/2-c-yaz%C4%B1l%C4%B1m-dersleri-oop-1-5-video-aya-d3b017ff9f5a ]

C# Yapıları Öğrenelim – Ders 21” için 2 yorum

  1. That is awesome! Excellent! I am using translate for this btw but this post is reallu understandable. Keep it up

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir