6
içindəki müəyyən kodları ayrı-ayrılıqda həmin və ya digər proqram daxilində obyektin xüsusiyyətlərini
yenidən yaratmadan istifadə etmə imkanı yaradır.
Məsələn yaratdığınız maşın obyektini (eyni zamanda "maşın proqramını" əgər belə adlandırsaq) digər
proqramın daxilindən çağırıb istədiyiniz yerə tətbiq edə bilərsiniz. Siz çağırılan obyektin kodunu tamamı ilə
köçürtmədən, sadəcə mənbəyini göstərməklə, ona verilən adı yeni proqramdakı müəyyən olunmuş yerə daxil
edərək proqramı işə salırsınız.
Java OOP "Compile"(kompayl - komplektləşdirən, toplayan, birləşdirən) texnologiyasından istifadə edir.
Java bütün compile etdiyi proqramlara ".class" sonluğunu əlavə edir. Compile olmuş proqram bytecode-a
çevrilir. Əgər ".class" faylı görsəniz bilin ki içində bytecode var. Java BASİC kimi sadəcə interpreter
texnologiyasından istifadə etmir. Kodları sətir-sətir və ayrı-ayrılıqda oxuyub tərcümə etmir. Əvvəlcədən
proqram daxilində yazılan əmrləri müəyyən edir, sonra vahid şəkildə proqramın harada başlayıb, harada
bitəcəyini, iş prosesində hansı əmrlərin yerinə yetirəcəyini anlayır. Yazacağımız "Salam dünya" proqramının
bytecode-a çevirilmiş şəkli aşağıdakı kimidir.
Şəkildən də göründüyü kimi kod compile olunan kimi faylın sonuna ".class" əlavə edilmişdir. Bu proses də
öz növbəsində JAVA Virtual Machine(Java Virtual Maşını-JVM) işinə start verir. JVM bytecode-u
binary
koda çevirir. Java bu metodla daha sürətli və CPU-nun versiyasından asılı olmayaraq bütün kompüterlərdə
işləyə bilir.
İndi bütün yuxarıda izah etdiyim addımları bir araya toplayıb Java OOP-nin prosesi tam olaraq necə yerinə
yetirdiyinə baxaq.
1. "Salam.java" proqramı yazılır;
2. "Salam.class" artıq compile olunur və fayl bytecode-da çevrilir;
3. JVM vasitəsilə bytecode binary koda çevirilir;
4. Nəticə əldə edilir.
7
OOP –nin məntiqi və prinsipləri.
Həvəskar proqramçı üçün dərin nəzəri biliklərin olması vacib deyil. Bu baxımdan OOP-yə səthi yanaşaraq
bizə hazırda lazım ola biləcək məqamlara toxunmuşam. OOP həyatda olan obyektləri virtual aləmdə
yaratmaq üçün düşünülmüş nəzəriyyədir. Digər bir deyimlə real həyatdakı həm hərəkətli, həm hərəkətsiz
obyektləri, onların digər obyektlərlə münasibətlərini virtual aləmdə yarada bilmək üçün hazırlanmış üsullar,
qaydalar toplusudur. Obyekt hər hansı bir əşya, xidmət göstərən qurum və ya canlı ola bilər. Buna misal
olaraq avtomobil, bank, heyvan, su, qravitasiyanı göstərmək olar.
Obyektin təhlili
Obyekti real həyatdakı kimi virtual olaraq yaratmaq üçün onu tam incələmək, mümkün xüsusiyyətlərini
anlamaq lazımdır. Təhlil üçün avtomobil obyektini götürək:
Avtomobil haqda bizə nə məlumdur:
İstehsal edən firmanın adı
Modelin ili
Motoru
Rəngi
Salonu
bu xüsusiyyətlər ATRİBUTE-lar adlanır. Bəs maşının nə kimi funksiyaları vardır?
İşə düşür
Sönür
Əyləci sıxdıqda dayanır
Qapı və baqaj hissəsi açılır/qapanır
Şüşə silənləri hərəkət edir
Bu funksiyalar Method(metod) və Operation(opereyşn-əməliyyatlar, funksiyalar) adlanır.
Digər bir misal olaraq bank hesabını götürə bilərik. Hesabda bizə nə bəllidir:
Hesabın
nömrəsi
Hesabın kimə aid olması
Balansı
Gəlir faizi
Ünvanı
Yuxarıdakı məlumatlar Attribute-lardır. Bəs bank hesabının hansı funksiyaları vardır?
Deposit qoymaq
Bankomatdan pul çıxartmaq
Çek yazmaq
Ünvanı dəyişmək
Telefon nömrəsini dəyişmək
8
Bu funksiyalarda Metod və Operation-lardır. Yəqin ki artıq aydın oldu, hər hansı bir obyektin məlum olan
xüsusiyyətləri
Attribute-ları və
attribute-ları işə salan
Method-ları vardır. Bəzi hallarda method-lar attribute-la
əlaqəli olmaya bilər.
Sinifləndirmək - CLASS nədir?
Təhlil üçün avtomobil obyektini götürək. Avtomobilin ban növündən, firmasından və ya ölçüsündən asılı
olmayaraq obyektdəki attribute-lar və method-lar eynidir. Bu da onları eyni sinfinə daxil etməyə imkan verir.
El dilində belə izah edim, yolda uzaqdan bir minik vasitəsini görəndə siz onun markasını və ya nömrəsini
görməyə bilərsiniz amma onun attribute-larına görə avtomobil sinfinə aid olduğunu deyə bilərsiniz. Daha qısa
şəkildə desək attribute-ları və method-ları eyni olan obyektlər bir sinfə, bir class daxilinə salına bilərlər. Eyni
zamanda heyvanları, bitkiləri və s. eyni xüsusiyyət daşıyan obyektləri bir sinfə, bir class altına salmaq olar.
İnstance
(instans-instansiya, obyektin oxşarı). Məmin notbukum və Orxanın notbuku, notbuklar sinfinə,
notbuk class-ına aiddir. Məmin və Orxanın notbuku notbuk class-nın instance-dır. Daxilində fərqli attribute-
ları olmağına baxmayaraq ümumi göstəriciləri class-la eyni olan obyektlərdir.
El dilində belə deyək adından və ya sahibindən asılı olmayaraq notbuk deyendə nə ağlına gəlir, bax elə o
təsvir notbuklar sinfinə aid olması deməkdir. Kiməsə deyirsiniz mən notbuk almışam onu görməyən adam
belə artıq təsəvvürü var ki notbuk sinfinə aid ola biləcək obyekt necə olmalıdır. Onun instance-nı fikirləşir(
rəngini, ağırlığını və s.)
Encapsulasiya
Attribute-ların obyekt haqqında məlumat verdiyini artıq bilirik. Obyekt funksionallaşdığında encapsulasia
method-lar vasitəsi ilə obyektin məlumatlarını gizlətmək rolunu oynayır. Proses sonundakı nəticə məlum olsa
belə daxildə hansı attribute-ların qarşılıqlı əlaqəsindən nəticənin yarandığı gizlədilir.
Abstraction
Abstraction isə vacib detalları göstərməklə lazımsızları kənarlaşdırmaq funksiyasını icra edir. Misal olaraq
avtomobili işə salan sahibi açarı döndürdükdə avtomobilin işə düşəcəyindən başqa obyektdə gedən
proseslərin necə icra olunduğunu görmür. O sadəcə açarı döndürüb avtomobilin işləməsini gözləyir, digər
proseslər ondan uzaq tutulur və ya gizlədilir.
İnheritance(irsilik)
Velosiped, avtomobil, yük maşını ayrı-ayrılıqda sinifdirlər. Avtomobil sinfinin alt sinifləri kimi mini, VAN,
SUV-ləri götürmək olar. Amma hamısı insanlar üçün yaradılmış minik vasitələrinə aiddirlər. Minik vasitəsi
irsilik daşıyır və ondan sonra gələn siniflər və alt siniflər birlikdə irsilik daşıyırlar. İrsilik varsa əlaqə təbii
olaraq var.
Polymorphism(polimorfizm)
Poly-çoxlu, morph-forma, davranış deməkdir. Bir neçə obyekt arasından ən düzgün olanın seçilməsində
polymorphism method-dan istifadə edilir.
Bir az lori dildə izah edim. Fərz edin ki şirkətdə işləyirsiniz və nəqliyyat departamentinə zəng edib deyirsiniz
ki şirkətin rəisinə digər şirkət tərəfindən orta həcmdə heykəl hədiyyə edilib və rəis deyir ki olduğunuz yerə
heykəli daşıya biləcək minik vasitəsi göndərilsin. Şirkətin balansında olan minik vasitələri sinfində sedan,
SUV, yük maşını və traktor var. Polymorphism bu yerdə işə düşür. Əsas dəyərlər minik vasitəsinin seçilməsi,