Objeler ve BileÅŸenler
Bir Obje nedir? Gerçek dünyadaki objelerin mantığını yanıstan, kodlamayı kolaylaştıran bir konsepttir. Bir Obje dışarıya dönük bir takım özellikler ve metotlar sunar. Objeyi kullanırken, sadece sunduğu bu birimler üzerinden objeyle bilgi alışverişi sağlanır. Obje ise kendi içinde herşeyini kendisi yönetir. Obje ve Bileşen aynıdır. Aralarında teknik olarak hiçbir fark yoktur. Farkları sadece kodu doğru okumak içindir. Bileşen ile ekranda gözüken Pencere, Buton, Menü, Liste gibi görsel objeler tasarlanır. Obje ile arkaplanda çalışan ve ekrana görsel bir biçimde yansımayan objeler tasarlanır.
Objenin bazı özellikler ve işlemleri sadece objenin kendisi için, içerden sağlanırken, bazı özellikleri ve işlemleri dışarıyla veri akışını sağlamak için düzenlenir.
Objenin dışardan erişilebilir özellikleri (Değişkenler, Dizilimler, ProsedürBağları ve İşaretler) "Açık" anahtar kelimesiyle birlikte tanımlanır. İçe kapalı olan bu tür verileri ise "Kapalı" anahtar kelimesiyle birlikte tanımlanır.
Objenin dışardan erişilebilir prosedürleri "Metot" olarak tanımlanır. Sadece kendi içinde kullanılabilir prosedürleri yine "Prosedür" olarak tanımlanır. Prosedürler ise üç gruba ayrılırlar:
- Normal prosedürler
- Hazırlama prosedür(leri)
- Kaldırma prosedürü
Normal prosedürler Obje içinde her türlü işlemi yapar. Mesela metotlar tarafından kullanılabilir. Örneğin bir görsel bileşen tasarlanıyorsa, ortak bir çizim prosedürü tanımlanabilir. Her eylem ardından bu prosedürü çalıştırarak bileşen yeniden çizilebilir. Hazırlama prosedürü en az bir adet olmak zorunda. Bu prosedür yükleme yapabilir. Yani kendisinde birkaç çeşit olabilir.
Hazırlama prosedürü bileşeni veya objeyi ilk kez kullanacağımız zaman çalıştırılır ve objenin içindeki tüm hazırlıkları yapar. Mesela özelliklerin standart değerlerini belirler, gerekirse arabellekten alan rezerve eder vesaire.
Her objenin mutlaka bir kaldırma prosedürü vardır. Bu prosedür yükleme desteklemez. Bir obje artık lazım değilse, onu arabellekten kaldırmak için "Yoket" komutu kullanılır. Fakat Basit o objeyi yoketmeden önce kaldırma prosedürünü otomatik olarak çalıştırır ve obje kendi içinde bir temizlik yapar. Mesela arabellekten rezerve ettiği alanları tekrar kaldırması gibi.
Bir örnek:
Obje İsim
   ? Bu tanımlamalar sadece obje içinde geçerlidir
   Kapalı Değişken Rakam a; b; c
   Kapalı Dizilimsel Metin klistem
   ? Bu tanımlamar hem obje içinde, hemde dışında geçerlidir
   Açık Değişken Rakam d; e; f
   Açık Dizilimsel Metin alistem
   ? Bu prosedür sadece obje içinde geçerlidir
   Prosedür içerdeBirşeyYap ()
      ? ...
   ProsedürSon
   ? Bu metot hem obje içinde, hemde dışında geçerlidir
   Metot DışardanÇalıştırılabilir ()
      ? ...
   MetotSon
   ? Hazırlama prosedürü
   Prosedür İsim ()
      ? ...
   ProsedürSon
   ? Kaldırma prosedürü
   Prosedür _İsim ()
      ? ...
   ProsedürSon
ObjeSon
Aynı örnek Bileşen içinde geçerlidir:
Bileşen İsim
   ? Bu tanımlamalar sadece obje içinde geçerlidir
   Kapalı Değişken Rakam a; b; c
   Kapalı Dizilimsel Metin klistem
   ? Bu tanımlamar hem obje içinde, hemde dışında geçerlidir
   Açık Değişken Rakam d; e; f
   Açık Dizilimsel Metin alistem
   ? Bu prosedür sadece obje içinde geçerlidir
   Prosedür içerdeBirşeyYap ()
      ? ...
   ProsedürSon
   ? Bu metot hem obje içinde, hemde dışında geçerlidir
   Metot DışardanÇalıştırılabilir ()
      ? ...
   MetotSon
   ? Hazırlama prosedürü
   Prosedür İsim ()
      ? ...
   ProsedürSon
   ? Kaldırma prosedürü
   Prosedür _İsim ()
      ? ...
   ProsedürSon
BileÅŸenSon
Bir Obje veya Bileşen başka bir Obje veya Bileşenden kaynaklanabilir. Kaynak aldığı Objenin açık tanımlamaları ve metotları otomatik olarak kendisine eklenir:
Obje AnaObjem
   ? Bu tanımlamalar sadece obje içinde geçerlidir
   Kapalı Değişken Rakam a; b; c
   Kapalı Dizilimsel Metin klistem
   ? Bu tanımlamar hem obje içinde, hemde dışında geçerlidir
   Açık Değişken Rakam d; e; f
   Açık Dizilimsel Metin alistem
   ? Bu prosedür sadece obje içinde geçerlidir
   Prosedür içerdeBirşeyYap ()
      ? ...
   ProsedürSon
   ? Bu metot hem obje içinde, hemde dışında geçerlidir
   Metot DışardanÇalıştırılabilir ()
      AnaObjem.a = 5
      AnaObjem.b = 18
      AnaObjem.c = AnaObjem.a * AnaObjem.b
   MetotSon
   ? Hazırlama prosedürü
   Prosedür AnaObjem ()
      ? ...
   ProsedürSon
   ? Kaldırma prosedürü
   Prosedür _AnaObjem ()
      ? ...
   ProsedürSon
ObjeSon
Obje YeniObjem Kaynağı AnaObjem
   ? Bu tanımlamalar sadece obje içinde geçerlidir
   Kapalı Değişken Rakam rak1; rak2
   ? Bu tanımlamar hem obje içinde, hemde dışında geçerlidir
   Açık Değişken Rakam liste1; liste2
   ? Bu prosedür sadece obje içinde geçerlidir
   Prosedür birİşlem () Rakamdır
      Sonuç YeniObjem.rak1 + YeniObjem.rak2
   ProsedürSon
   ? Bu metot hem obje içinde, hemde dışında geçerlidir
   Metot HesapEt () Rakamdır
      Sonuç YeniObjem.birİşlem()
   MetotSon
   ? Hazırlama prosedürü
   Prosedür YeniObjem ( Rakam a; b )
      YeniObjem.rak1 = a
      YeniObjem.rak2 = b
   ProsedürSon
   ? Kaldırma prosedürü
   Prosedür YeniObjem ()
      ? ...
   ProsedürSon
ObjeSon
Objeyi kullanmak için hazırlık prosedürü çalıştırılmalıdır:
Prosedür Başlat ()
   ? Obje türünden bir bir değişken tanımlanıyor
   Belirle YeniObjem test
   ? Hazırlama prosedürü çalıştırılıyor
   test()
   ? Öğeleri kullanılıyor
   Birlikte test
      ? Objenin kendi metotu
      Denetim .hesapEt()
      ? Kaynağından elde ettiği metotu
      Denetim .DışardanÇalıştırılabilir()
   BirlikteSon
ProsedürSon