Yenidən tank döyüşü proqramma qayıdaq. Bu proqramda tank bütün əməliyyatları "düşünmədən" icra edir. Tank bilmir ki, onun qarşısında müqavimət var, mina var - o, tamamilə kor və kardır. Lakin, bütün bunlan onun əvəzinə proqramçı bilir və o, izləyir ki, tank mina üzərinə çıxmasın, düşmən gülləsinə tuş gəlməsin. Bəs necə etmək olar ki, bütün bunlan tank özü etsin, daha "ağıllı" olsun? Təəssüf ki, baxılan hal üçün bu mümkün deyildir. Çünki, burada tankm xassələrini sazlamaq üçün heç nə yoxdur. Bir halda ki, xassə yoxdur, demək hadisə də yoxdur, çünki, hər bir obyekt üçün mümkün hadisə elə xassələrin müxtəlifliyidir. Hadisə yoxdursa, demək ona reaksiya da yoxdur. Müasir proqramlar isə belə işləmir. Məsələn, Windows əməliyyat sistemini götürək - axı bu da proqramdır. O, kompüter qoşulan kimi işə düşür və kompüter söndürülənədək öz işini görür. Haradasa, Windows sisteminin dərinliklərində, ekran obyektlərində və idarəetmə elementlərində baş verən bütün dəyişiklikləri izləyən bir proses daim işləyir. Nəticədə, sistem mausun hərəkətinə, onun və ya klaviaturanin klavişlərinin basılmasına reaksiya verməyə həmişə tam hazır olur.
Sinif və obyekt
Yuxarıda qeyd etdik ki, obyektyönlü proqramlaşdırmada proqramçı çoxlu siniflər üzərində əməliyyat aparır. Sinif - xassə, metod və hadisələr yığımıdır, başqa sözlə, sinif - metod, xassə və hadisələrdən ibarətdir və bunlar onun mükəmməl işləməsini təmin edir. Yəqin ki, sizlərdən hər biriniz Windows sistemində heç olmazsa, bir dəfə hər hansı düyməni basmışsınız. Həmin düymə məhz
xassəyə (rəngi, ölçüsü, üzərində yazı, yazının şrifti və s.),
hadisəyə (düymənin basılması),
metodlara (mətnin ekrana çıxarılması, pəncərənin bağlanması və s.) malikdir.
Xassə, metod və hadisələrin işini tam bir vahid kimi araşdıraq. Yenə də düymə sinfinə baxaq. Bu sinif aşağıdakı minimal yığıma malik olmalıdır:
Bu obyekt tam bir vahid kimi işləyir. Məsələn, siz, düymənin sərlövhəsini dəyişdirdiniz. Obyekt dərhal “düymənin sərlövhəsi dəyişdi” hadisəsini yaradır. Bu hadisəyə uyğun olaraq “düyməni cəkmək” metodu çağrılır. Bu metod düyməni obyektin xassələrində göstərilmiş mövqedə yerləşdirir və onun üzərində “düymənin sərlövhəsi” xassəsində göstərilmiş yazını təsvir etdirir. Hər bir sinfin iki metodu vardır: “obyekti yaratmaq” və “obyekti məhv etmək”. Obyekt yaradıldıqda onun xassələrini yadda saxlamaq üçün yaddaşda yer ayrılır və avtomatik olaraq qiymətlərlə doldurulur. Obyekti məhv etdikdə isə həmin yaddaş boşalır. Obyekti yaradan metod konstruktor (constructor), obyekti məhv edən metod isə destruktor (destructor) adlanır. Obyektin özünün yaradılması prosesi isə inisializasiya adlanır. Object Pascal dilində obyekt mürəkkəb tipdir. Bu o deməkdir ki, hər hansı dəyişəni "obyekt" tipli elan etmək olar (necə ki, hər hansı dəyişən "ədəd" və ya "sətir" tipli elan edilirdi). İndi obyekt və sinif haqqında bildiklərimizi birləşdirək. Sinif tipini elan edək. Qəbul edək ki, Obyekt 1 - Düymə tiplidir. Obyektin yaradılması haqqında "proqramı" öz sözlərimizlə yazaq: Proqramın başlanğıcı;
Dəyişənlər
Obyektl : Düymə; Kodun başlanğıcı
Obyektl: = Düymə. Obyekti_ yaratmaq;
Obyektl. Sərlövhə: ='Delphi' ;
Obyektl. Obyekti_məhv_etmək; Kodun sonu.