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