19 Şubat 2017 Pazar

CLASS DEFINITON

Bir programda sınıf(class) yapmak istiyorsak aşağıdaki gibi bir yapıda olmak zorundadır.

class name
 {
   public
        >> constructor(s)
        >> destructo
        >> function members 
        >> data members 
   protected
        >> function members
        >> data members 
   private 
        >> function members
        >> data members
 }



 PUBLİC


 Her yerden erişime açıktır.Fonksiyon yada değişkenler dışarıdan değer alabilirler.

Cunstructor(s):(Yapılandırıcı veya kurucu olarak adlandırılır) fonksiyon,kendi sınıfı icerisindeki(genelde private olan uyeler) uyeleri veya olusturdugu nesnenin ilk cikis sahnesini olusturan fonksiyonlardir.Nesneler,genelde yaratılırken ilk deger atamalarını kendi kurucu fonksiyonlari sayesinde yaparlar.Boyle bir kural sart degildir,ancak nesne yönelimli programlama dilleri(object oriented programming) uzerinde kod yazan programcılar genelde bu yaklaşım ile sınıflarını tasarlarlar.Bakıldıgı zaman programın optimizasyonu acısından da constructor fonksiyonları cok yararlıdır.

Destructors: (Yıkıcı , Yok edici) olarak adlandırılan fonksiyonlar ise,constructor fonksiyonunun yaptıgı işin tersini yaparlar,yani gorevi biten nesneyi yok ederler.Bir sınıfın(class) uyesi olan bir degisken(orn:string tipli) gorevini noktaladigi durumda ~destructor() fonksiyonu otomatik cagrilarak,uzerinde calistigi nesneyi devre dışı bırakır.C++ programlama dili icerisinde destructor'lar bulunurken,java dilinde bu fonksiyonlar kaldırılmıştır.Nedeni ise,programlama zafiyeti acısından eger iyi tasarlanmazsa,bu fonksiyonlar programa ciddi zararlar verebilirler.
Destructor() fonksiyonları olmasada,constructor() fonksiyonlari aşırı yuklenebilir.Bu durumu fonksiyon parametrelerini degistirerek uygulayabilirsiniz.Ancak bu fonksiyonlarin donus tipi belirtilmemektedir. 
-C++ programlama dilinde bu sistemlerin initalize edilmesi asagidaki gibi tasarlanır:
 
class class_name { // Bir class
 
class_name(); // Bir constructor
class_name(int,float); // Aşırı yuklenmiş Bir constructor
~class_name(); // Bir destructor
};

Function members: Bir nesne dahili olarak saklanan ve o nesneye özgü işlevler içerebilir. 
Bu tür her bir işlev , sınıfta bir prototip olarak uygun bir deklarasyona ihtiyaç duyar.
İşlev üyeleri sıradan işlev olabilir, ancak aşırı yüklenebilir , 
varsayılan parametre değerlerine sahip olabilirler veya sanal olabilirler.


PRİVATE 

Private üyelere o sınıf dışından herhangi bir şekilde erişilemez ve bu üyeler kalıtım yoluyla aktarılmaz.. Private olarak tanımlanan değişken ve fonksiyonlar sadece o sınıfın kendi metotları tarafından kullanılabilir. Yani işin özü o metod veya değişken sadece o sınıfa özel olur.
Bir değişkeni private olarak tanımladığınızda ve bu değişkenin başka bir sınıf tarafından kullanılması gerektiğinde bu değişkeni döndüren bir public fonksiyon yazarak işlemi gerçekleştirebilirsiniz.


PROTECTED

Protected aslında private'ye benzer. Protected özelliği atanan bir değişken veya metot, sadece sınıf içerisinden veya türetilen bir sınıf içerisinden erişilebilir.. Yani bir sınıf extend ettiği sınıfın protected üyelerine erişebilir ama private üyelerine erişemez.


1 yorum: