Press "Enter" to skip to content

Object yönlü proqramlaşdırma

Bir obyekt, adlandıra biləcəyimiz və təsvir edə biləcəyimiz bir şeydir. Obyektlər, proqramlarımızda modelləşdirmək istədiyimiz ‘şeylər’ dir və buna görə obyekt yönümlü bir proqramın məqsədi real dünyanı kodla təmsil etməkdir. Altıncı sinif kollecinin nümunəsini nəzərdən keçirsək, obyektlər tələbələr, müəllimlər, sinif otaqları və kompüterlər kimi şeylər olacaqdır.

Proqramlaşdırma sistemləri

5.3. Proqramlaşdırma sistemləri
EHM-lərin ilk inkişaf mərhələsində proqramlaşdırma maşın dilində idi. Bu, çox
çətin, böyük zəhmət tələb edən iş idi. O vaxt hər maşının özünəməxsus dili var idi. Bu
dildə yazılmış proqramı oxumaq mümkün deyildi. Buna görə də səhvi tapmaq müşgül
məsələ idi.
Proqramlaşdırma texnologiyasında ilk tərəqqi əməliyyatın kodu və verilənin ünvanı
əvəzinə adlardan istifadə ideyası ilə bağlıdır. Bu, proqramın oxunuşunu və redaktəsini
köklü şəkildə asanlaşdırdı. Bu ideya üzrə yazılan əmrlər dili Assembler dili adlanır.
Lakin Assembler dili də birbaşa maşının konstruksiyasına bağlandığından, dil fərqi
problemi həll edilməmiş qaldı. Həm də Assembler dilində yazılmış proqramı kompüter
bilavasitə istifadə edə bilmir. Bu problemi translyator həll etdi. Assemblerdən az sonra
yüksək səviyyəli dillər, ilk olaraq Fortran, Cobol, sonra Alqol60 alqoritmik dili yarandı.
Proqramlaşdırma dilləri: ixtisaslaşdırılmış və universal olmaqla 2 yerə bölünür.
İxtisaslaşdırılmış dillər xüsusi sinif məsələlərin həlli üçündür. Universal dillər hər cür
məsələni həll etməkdən ötrüdür. Universal dillər, şərti olaraq, sadə və mürəkkəb dillərə
bölünür. Sadə dillərə: Paskal, CBasic, mürəkkəb dillərə: Ada, Modula2, Algol68,
C++ aiddir.
Paskal 1970-ci ildə Algol60 dilinin ideyaları əsasında, tədris məqsədi ilə yaradılsa
da, geniş praktiki tətbiq tapdı.

69
Alqoritmik dilləri, həmçinin, prosedur və qeyri-prosedur dillərinə bölürlər. Prosedur
dillərində alqoritm ayrı-ayrı əməliyyatlar ardıcıllığı kimi təsvir edilir. Qeyri-prosedur
dillərində proqramın məqsədi formalaşdırılan kimi məsələnin həll alqoritmi avtomatik
tərtib edilir. Qeyri-prosedur dillərinə PrologPlanner misal ola bilər.
Proqramlaşdırma dillərinin ən vacib anlayışlarından biri dəyişən anlayışıdır.
Dəyişən, müraciət gözləyən verilənin yerləşdiyi yaddaş yuvasının məzmunudur ki, bu da
proqramın gedişində dəyişikliyə uğrayır. İkinci vacib anlayış dəyişənin tipi anlayışıdır.
Prosedur proqramlaşdırma dillərinin mühüm elementi operatordur. Bu proqramlar
operatorlar ardıcıllığı kimi tərtib edilir.
Məsələnin maşında həlli aşağıdakı mərhələlərdən keçir:

Proqramı tərtib ediləcək məsələnin qoyuluşu, məqsədin, şərtləin və funksiyaların
formalaşdırılması;

Proqramın ümumi sxeminin qurulması;

Formal (riyazi) modelləşdirmə, yəni, məsələnin düsturlaşdırılması və verilənlərin
modellərinin qurulması;

Məsələnin metodiki həlli;

Müəyyən dildə, məsələn, blok-sxem dilində və ya bilavasitə proqramlaşdırma
dilində alqoritm tərtibi;

Proqram mətninin tərtibi;

Proqram komponentlərinin testləşdirilməsi və sazlanması;

Proqramın sınaq istismarı;

Proqramın praktiki istifadə üçün tətbiqi.
Proqramın layihələşdirilməsi tərtib edilən proqramın məqsəd və funksiyalarının
ardıcıl surətdə xırdalaşdırılıb dəqiqləşdirilərək modullara çevrilməsi prosesini ifadə edir.
Layihələşdirmə: prosedur-istinad və verilən-istinad olmaqla 2 metodla həyata keçirilir.
Prosedur-istinad metodunda proqramın quruluşu məsələnin funksional sxemini təkrar
edir. Verilən-istinad metodunda ilk növbədə obyektin tam funksional təsvirini verən
verilənlərin quruluşu müəyyən edilir.

70
Mürəkkəb məsələlərin həll alqoritmini qurarkən 2 üsuldan istifadə edilir: yuxarıdan-
aşağı təhlil və aşağıdan-yuxarı sintez. Təhlil zamanı ümumidən xüsusiyə, sintez zamanı
isə xüsusidən ümumiyə doğru hərəkət edilir.
Obyekt-istinad proqramlaşdırması prosedur-istinad və verilən-istinad metodlarını
vahid tam halında birləşdirir. Burada əsas anlayış sinif anlayışıdır. Hər sinif bir real
obyektin modeli olub, həmin obyekti təsvir edən məlumatları saxlayır və onların emalına
icazə verir. Məsələn Verilən bazası üçün axtarış, əlavəetmə, dəyişdirmə və təqdimetmə
kimi prosedurlarının hər biri bir obyektə verilən xassədir.
Proqramlaşdırma sistemi dedikdə, bir və ya bir neçə proqramlaşırma dilindən
istifadə etməklə proqram üzərində aparılacaq bütün iş mərhələlərinin icrasına imkan
verən instrumental proqram vasitələri nəzərdə tutulur.
Proqramlaşdırma sistemi aşağıdakıları əhatə edir:

Proqram mətnini yazmaq və modifikasiya etmək üçün mətn redaktoru;

Verilmiş dildə mətn translyatoru;

Proqramı kompanovka edici;

Proqramı icra edən;

Standart prosedur və funksiyalar kitabxanası;

Proqram sazlayıcı.
Proqram sazlanmasının bütün mərhələlərini birləşdirən proqram kompleksinə
proqramlaşdırma mühiti deyilir.
Borland firmasının Turbo Pascal adlı proqramlaşdırma mühiti geniş yayılmışdır.

5.4. Obyektyönümlü proqramlaşdırma
5.4.1. Obyektyönümlü vizual proqramlaşdırmanın əsasları
Visual BasicVisual Basic for Applications adlı obyekt-istinad proqramlaşdırma
dillərində yazılmış proqram əlavələri obyektlərdən qurulur. Hazır obyektlər bir proqram
kitabxanası təşkil edir ki, həmin kitabxana sözügedən proqramlaşdırma sistemlərinin
tərkibinə daxildir.
Obyekt-istinad proqramlaşdırma sistemləri hazırlanacaq proqram əlavəsinin qrafik
interfeysini yaratmağa, yəni prosesi vizuallaşdırmağa, gözlə görünən etməyə imkan verir.

71
Çünki bu sistemlər özlərinin dialoq pəncərəsinin köməyi ilə obyekt yaratmağa və ona
müəyyən xassələr verməyə imkan yaradır.
Proqram obyektlərinin qarşılıqlı fəaliyyəti və dəyişməsi proqram kodu ilə təsvir
edilir. Proqram kodları xətti, budaqlanan və dövr quruluşlarından istifadə edilməklə
hazırlanır. Beləliklə, obyektlər həmin alqoritmik strukturların icraçısına çevrilirlər.

5.4.2. Obyekt sinifləri, sinif nüsxələri və obyekt ailələri
Obyekt-istinad proqramlaşdırmasının əsas vahidi proqram obyektidir ki, bu da
obyektə aid verilənləri (xassələri) və həmin verilənlərin işlənməsi vasitələrini (metodları)
özündə birləşdirir. Obtekt – isim, xassə – sifət, metod – feil kimidir. Proqram obyektləri
xassələrə malikdir, metodlardan istifadə edə bilir və hadisələrə reaksiya verir.
Obyekt sinifləri. Obyekt sinifləri xassələr, metodlar və hadisələr yığımını müəyyən
edən şablonlardır. Obyektlər həmin şablonlar üzrə yaradılır. Visual Basic dilində proqram
əlavəsinin qrafik interfeysini reallaşdıran obyekt sinifləri əsasdır. VBA dilində yüzdən
artıq müxtəlif obyekt siniflərindən istifadə edilir ki, bunlar da Windows&Office mühitində
mövcuddur. Hər iki dildə əlavə proqram obyektləri kitabxanalarını və proqramçının özü
tərəfindən yaradılmış obyekt siniflərini daxil etmək imkanı vardır. Hər bir obyektlər sinfi
özünəməxsus xassələr, metodlar və hadisələr yığımına malikdir. Məsələn, Word –də
―sənəd‖ obyektlər sinfi mövcuddur ki, bu da aşağıdakı yığımları özündə birləşdirir:

xassələr: ad (Name), tam ad (Full Name) və s;

metodlar: sənədi: aç (Open), çap et (PrintOut), saxla (Save) və s;

hadisələr: sənədin açılması (Document_New()), sənədin bağlanması (Docu-
ment_Close()) və s.
Sinif nüsxələri. Obyekt sinifləri şablonu üzrə yaradılmış obyekt sinif nüsxəsi adlanır
və verilmiş sinfə aid bütün xassə, metod və hadisə yığınlarına varis olur. Hər bir nüsxə
verilmiş sinif üzrə unikal (təkrar olunmayan) ada malik olur. Məsələn, Document
(―Azər.doc‖).
Bütün sinif nüsxələri eyni xassələrə malik olsalar da xassələrinin qiymətləri fərqli
olur. Məsələn, Word-də Document sinfinə aid olan müxtəlif disklərdə, müxtəlif
kataloqlarda, müxtəlif adlı bir neçə sənəd açılmış ola bilər:
Obyektin adı
Obyektin xassələri və onların qiymətləri

72
FullName (tam adı)
Path (yol)
Azər.doc
C:\Kurs\Azər.doc
C:\Kurs\
Azər.txt
D:\ Azər.txt
D:\

Göründüyü kimi, Azər.doc C: diskində, Kurs kataloqunda, Azər.txt obyekti isə D:
diskində kök kataloqda yerləşir.
Obyekt ailələri. Bir sinfə aid olan açılmış obyektlər bir ailə yaradır. Ailə Documents
() kimi işarə edilir. Ailədəki obyektə müraciət ad və ya indeks vasitəsilə həyata keçirilir.
Adla müraciət: Documents (―Azər.doc‖)
Sənədin ayrılmış fraqmentinə daxil olan bütün simvollar (Selection obyekti)
Characters () ailəsinə daxildir. Simvola müraciət onun indeksi vasitəsi ilə həyata keçirilir:
Characters (7).

5.4.3. Obyektlər: xassələr, metodlar, hadisələr
Obyektlərin xassələri (Properties). Hər bir obyekt müəyyən xassələr yığımına malik-
dir ki, bunların da başlanğıc qiymətlərini dialoq pəncərəsindən təyin etmək mümkündür.
Xassənin qiymətini proqram kodunda da dəyişmək olar. Bunun üçün: Obyekt.Xassə =
QiymətXassə təlimatına əməl etmək lazımdır. Məsələn, fərz edək ki, mətnin ayrılmış
fraqmentində (Selection obyekti) birinci simvol (Characters (1) obyekti) yarımqalın
olmalıdır, yəni Bold xassəsi verilməlidir. Bold xassəsi verilərkən xassənin qiyməti True,
əks halda False olacaqdır. Simvola Bold xassəsinin verilməsi üçün: Selection.Characters
(1). Bold = True yazmaq lazımdır.
Adətən obyektin bir neçə xassəsi olur. With…End With təlimatından istifadə etməklə,
obyektə bir neçə xassəni bir dəfəyə mənimsətmək olar. Bunu etmək üçün:
With Obyekt
.Xassə1 = QiymətXassə1
.Xassə2 = QiymətXassə2
.
.XassəN = QiymətXassəN
End With
yazmaq kifayətdir.

73
Məsələn, 10 simvoldan ibarət olan ayrılmış mətn fraqmentinə ―yarımqalın kursiv‖
vermək üçün aşağıdakı proqram kodundan istifadə etmək olar:
For I=1 to 10
With Selection.Characters (I)

.Bold = True

.Italic = True
End With
Next I
Obyekt metodları (Methods). Obyektin hər hansı əməli icra etməsi üçün onun malik
olduğu metodlardan biri tətbiq edilməlidir. Bir çox metodlar icra ediləcək əməliyyatların
parametrlərini daxil etməyə imkan verən arqumentlərə malikdir. Arqumentlərə konkret
qiymət vermək üçün := işarəsindən, arqumentləri bir-birindən ayırmaq üçün isə vergüldən
istifadə edilir. Metoda da, xassəyə müraciət edildiyi kimi, nöqtəli notasiya
97
ilə müraciət
edilir, yəni, metod sözündən əvvəl nöqtə qoyulur:
Obyekt.Metod arq1:=qiymət, arq2:=qiymət
Məsələn, açılmış Word sənədinin diskdə saxlanması üçün arqumentsiz Save
metodundan istifadə edilir:
Documents (―Azər.doc‖).Save
Word sənədini açmaq üçün:
Documents ().Open FileName:=‖C: \Kurs\Azər.doc‖ yazmaq, yəni, yolu da
göstərmək lazımdır.
Azər.doc sənədinin ilk 3 səhifəsini çap etmək üçün bir-neçə arqumentli PrintOut
metodundan istifadə edilir. Bu halda Range (çap diapazonunun formatını verir), From
To (çap ediləcək başlanğıc və son səhifələrin nömrələrini) arqumentləri daxil edilməlidir:
Documents (―Azər.doc‖).PrintOut
Range:=wdPrintFromTo, From:=‖1‖,
To
:=‖3‖
Yəni, qrafik interfeysin ―çap‖ dialoq pəncərəsində 1-3 yazmaqla sənədin ilk 3
səhifəsi çap edilir.
Hadisələr (Events). Hadisə obyektin tanıdığı əməldir. Hadisə istifadəçi tərəfindən
(məsələn, klaviatura düyməsini basmaqla) və digər proqram obyektlərinin təsiri ilə

97
Şərti yazılı işarələr sistemi

74
yaradıla biləndir. Hadisəyə reaksiya (cavab) vermək üçün obyektin xassələrinin qiymətini
dəyişən, metodları çağıran və s. prosedurlardan istifadə edilir. Məsələn, Document (sənəd)
obyekti Open (açmaq), New (yaratmaq) və Close (bağlamaq) hadisələrinə, Selection
(sənədin ayrılmış fraqmenti) obyekti isə Cut (kəsmək), Copy (üzköçürmə), Paste
(yapışdırma), Delete (Silmə) və s. hadisələrə reaksiya verir.

5.4.4. Visual Basic-də hazırlanmış proqram layihəsinin
qrafik interfeysi və hadisəvi prosedurları
Qrafik interfeys. Qrafik interfeys işləyən proqram əlavəsi ilə istifadəçi arasında
dialoq yaratmaq üçündür. Qrafik interfeys yaratmaq üçün əsas instrument ekrana açılan
formadır (Visual Basic-də Form, VBA-da UzerForm obyektlər sinfi) ki, bu da idarəedici
elementlərin yerləşdirildiyi pəncərədən ibarətdir. Layihənin qrafik interfeysi bir-neçə
formanı əhatə edə bilir.
Qrafik interfeys vizual olaraq elə qurulmuşdur ki, mışın köməyi ilə forma üzərində
idarəedici elementlərin şəklini çəkmək mümkün olur.
İdarəedici elementlər sinfi (Controls) qrafik interfeysdə müxtəlif cür adlandırılır.
Belə ki, məsələn, mətn sahəsi (TextBox), metka (Label), siyahılar
98
(ListBox), qrafik
pəncərələr
99
(PictureBox), əmr düymələri (CommandButton), dəyişdirici açarlar
(CheckBox), bayraqcıqlar (OptionsButton) və s.
Forma üzərinə idarəeici elementlərin eyni sinfinə aid olan, lakin fərdi qiymətli
xassələr nümayiş etdirən bir-neçə nüsxəsi (məsələn, Command1, Command2, Command3
və s.) yerləşdirilə bilər.
İdarəedici element dedikdə, qrafik interfeysin elə elementi nəzərdə tutulur ki, o,
istifadəçi və ya proqram obyektləri tərəfindən yaradılan hadisəyə reaksiya versin.
Forma və idarəedici elementlər müəyyən xassə, metod və hadisə yığımları ilə
xarakterizə olunur. Bəzi obyekt sinifləri, xassələr, metodlar və hadisələr aşağıdakı
cədvəldə verilmişdir:
Obyekt sinifləri
Xassələr
Metodlar
Hadisələr
Form (forma)
Name (Ad)
Show
Load (yükləmə)

98
Adətən verilənlərin daxil edilməsi və çıxarılması üçün istifadə edilir.
99
Qrafikanın çıxarılması üçün istifadə edilir.

75
UzerForm (forma) Capiton (Üst yazı)
Font (Şrift)
Height
(Hündürlüyü)
Width (Eni)
(Göstərmək)
Move
(Yerdəyişmə)
CommandButton
(Əmr düymələri)
Name (Ad)
Capiton (Üst yazı)
Font (Şrift)
Height
(Hündürlüyü)
Width (Eni)
Move
(Yerdəyişmə)
Click (Düyməbasma)
TextBox
(Mətn
sahəsi)
Name (Ad)
Text (Mətn)
Font (Şrift)
Height
(Hündürlüyü)
Width (Eni)
Move
(Yerdəyişmə)
DblClick
(İkiqat düyməbasımı)

Obyekt adlarının uzlaşdırılması. Layihənin obyektlərinə ad vermək məqsədəuy-
ğundur. Çünki ad obyektin tipini və təyinatını müəyyən etməyə imkan verir. Ad obyektin
tipini göstərən sözönü ilə başlayır. Forma üçün frm, əmr düymələri üçün cmd, mətn sahəsi
üçün txt, üst yazı üçün lbl və s. sözönündən istifadə edilir. Sözönündən sonra adın
məlumatverici hissəsi gəlir ki, bu da ya böyük hərflə başlanan söz (məsələn, frmFirst,
lblText, cdmExit), ya da rəqəm (məsələn, txt1, txt2, txt3) ola bilər.
Hadisəvi prosedurlar. Hər bir hadisəyə obyektin müəyyən münasibətini, başqa sözlə,
reaksiyasını proqramlaşdırmaq olar. İstifadəçi qrafik interfeysin hər hansı elementinə
mışla təsir etdikdə icra edilən əməllər hadisəvi prosedurlar sayılır. Prosedurun adı obyektin
adından və hadisənin adından ibarətdir:
Obyekt_Hadisə ()
Beləliklə, hadisəvi prosedur dedikdə, müəyyən hadisənin reallaşdırılmasından sonra
icraya başlayan alt proqram nəzərdə tutulur.

76
Hadisəvi prosedurda bir-neçə obyekt iştirak edə bilər. Məsələn, birinci obyektdə baş
verən hadisənin nəticəsində ikinci obyektin xassələri qiymətcə dəyişə bilər və üçüncü
obyekt hansısa metodu reallaşdırar və s.
Hadisəvi prosedur alt proqram olduğundan, Sub
100
açar sözlə başlayıb, End Sub açar
sözlə bitir:
Sub Obyekt (1)_Hadisə ()
Obyekt (2) .Xassə = QiymətXassə
Obyekt (3) .Metod arq1:=qiymət, arq2:=qiymət
.
End Sub

5.4.5. Visual Basic dilində proqram tərtibi üçün
inteqrasiya edilmiş mühit
101

Visual Basic dilində proqram tərtibi üçün inteqrasiya edilmiş mühit istifadəçiyə
münasib qrafik interfeyslə işləmək imkanı verir. Visual Basic işə buraxıldıqdan sonra yeni
layihə üzərində işə başlamaq üçün FileNewStandart əmrini daxil etmək lazımdır. Bu
halda sözü gedən inteqrasiya edilmiş mühit pəncərəsi ekrana açılır.
İnteqrasiya edilmiş mühit pəncərəsinin yuxarısında sərlövhə sətri var ki, burada da
Project1Microsoft Visual Basic [design] göstərilir.
102
Pəncərənin idarə düymələri
sərlövhə sətrinin sağ ucundadır.
Sərlövhə sətrinin altında baş menyü sətri vardır.
Baş menyü sətrinin altında tez-tez istifadə edilən əmrlərin piktoqramları yerləşir.
Formalar konstruktoru pəncərəsi. Bu, əsas işçi pəncərədir və inteqrasiya edilmiş
Visual Basic mühiti pəncərəsinin mərkəzində yerləşir. Qrafik interfeysin vizual quraşdırıl-
ması bu pəncərədə həyata keçirilir. Formalar obyekt sinfinə aid olan formanın özü, yəni,
frm1 obyekti məhz konstruktor pəncərəsində yerləşir. Formanın yerini və ölçüsünü
dəyişmək olar. Qrafik interfeys yaradıldıqca forma idarəedici elementlərlə doldurulur.

subroutine – alt proqram

101
Bu mühitin yaranması üçün Visual Basic 5.0 CCE proqramlaşdırma sistemini CDROM-dan yükləmək
lazımdır.

102
Project1 – layihənin müvəqqəti adı, Microsoft Visual Basic – proqram mühiti, [design] – cari iş rejimi –
layihələşdirmədir. İcra rejimində design rejimi run rejimi ilə əvəz olunur.

77
Proqram kodu pəncərəsi. Proqram kodu proseduru saxlanan modul forma ilə sıx
bağlıdır. Mətni daxil etmək və redaktə etmək üçün proqram kodu pəncərəsindən istifadə
edilir. Sərlövhəsi Project1-frm1(Code) sətrindən ibarət olan bu pəncərə [ViewCode] əmri
ilə ekrana çağırılır. Proqram kodunun sərlövhəsi altında 2 siyahı açılır. Sol siyahı formada
yerləşdiriləcək layihə obyektlərini, sağ siyahı isə seçilmiş obyekt üçün mümkün olan
hadisələri əks etdirir.
Alətlər paneli. İnteqrasiya edilmiş mühit pəncərəsinin sol hissəsində alətlər paneli
(ToolBox) var ki, burada da idarəedici elementlərin piktoqramları yerləşir. İdarəedici
elementlərin standart yığımı 21 obyekt sinfini əhatə edir. Buraya: CommandButton (əmr
düyməsi), TextBox (mətn sahəsi), Label (üst yazı) və s. aiddir. Alətlər panelini zənginləş-
dirmək imkanı da vardır. Məsələn, standart siyahıya mətn sahəsinin təkmilləşdirilməsi
(RichTextBox), şəkillər siyahısı (İmageList) və s. kimi yeni obyekt siniflərini əlavə etmək
olar. Alətlər panelindəki lazımi elementi mışla seçib layihələşdirmə formasına gətirmək
mümkündür. Bu zaman həmin elementin üzü köçürüldüyündən, istənilən sayda nüsxə
köçürmək olur: Command1, Command2, Command3 və s.
Obyektin xassələri pəncərəsi. Sağ tərəfdə obyektin xassələri (Properties) pəncərəsi
yerləşir. Bu pəncərədə artıq seçilmiş obyektlərin və onlara aid olan xassələrin siyahısı
verilmişdir. Xassələrin siyahısı iki sütundan ibarətdir.Sol sütunda xassənin adı, sağda
qiyməti əks etdirilir. Susma rejimində verilmiş qiymətləri dəyişmək olur. Xassə obyektin
kəmiyyət və keyfiyyət cəhətlərini (ölçüsünü, rəngini, şrifti və s.) əks etdirir. Bəzi xassələr
üçün qiymətləri siyahıdan seçmək imkanı da mövcuddur. Məsələn, fonun rəngini
(BackColor) siyahıdan seçmək olur.
Obyektlərə baxış pəncərəsi (Object Browser) [ViewObject Browser] əmri ilə
çağırılan vacib pəncərələrdəndir. Bu pəncərənin sol sütununda obyekt və ya obyekt sinfi
seçilir, sağ sütunda seçilmiş obyektə aid xassələr, metodlar və hadisələr yığımı ekrana
çıxır. Məsələn, sol sütunda Form obyektlər sinfi seçilərkən sağ sütunda Caption xassəsi,
Circle metodu və Click hadisəsi pəncərəyə çıxır. Siyahıdakı elementi, məsələn, Click
hadisəsini seçərkən pəncərənin aşağısına bu hadisə barədə qısa informasiya çıxır.
Layihə bələdçisi pəncərəsi (Project). Bu, yuxarı sağ küncdə yerləşir. Cari layihənin
tərkibini iyerarxik kataloq şəklində əks etdirir və istənilən səviyyəyə asan keçilməsinə
imkan verir. Layihə vbp tipli faylda saxlanır. Məsələn, prjVB1.vbp. Layihəyə aid olan
formalar frm tipli ayrıca fayllarda saxlanır. Məsələn, frmVB1.frm.

78
Formanın yerləşməsi pəncərəsi (Form Layout). Bu, aşağı sağ küncdə yerləşir. Bu
pəncərə icra zamanı forma pəncərəsinin monitor ekranının harasında yerləşəcəyini
göstərir. Formanın ekrandakı yerini mışla dəyişmək olur.
Proqram əlavəsinin işlənib hazırlanması mərhələləri. Visual Basic mühitində
proqram əlavəsinin tərtibi aşağıdakı mərhələlərdən keçir:
1.

Qrafik interfeysin yaradılması. Formalar konstruktoru pəncərəsində proqram
əlavəsi ilə istifadəçi dialoquna imkan verən idarəedici elementlər yerləşdirilir.
2.

Qrafik interfeysin obyektlərinin xassələrinə qiymət verilməsi. Obyektin xassələri
pəncərəsində əvvəlcədən forma üzərində yerləşdirilmiş idarəedici elementlərə
qiymətlər verilir.
3.

Proqram kodunun yaradılması. Kod redaktoru pəncərəsində proqram kodu
prosedurları daxil və redaktə edilir.
4.

Layihənin saxlanması. Layihə bir-neçə fayldan (o cümlədən, bir-neçə forma
fayllarından) ibarət olduğundan, hər bir layihə üçün diskdə ayrıca qovluq
yaratmaq məqsədəuyğundur. Layihənin saxlanması üçün File menyüsündən
istifadə edilir. Əvvəlcə forma və onunla əlaqəli proqram modulunu menyünün
Save FormVB1.frm As. bəndi ilə saxlamaq lazımdır. Sonra Save Project As.
əmri ilə layihə faylını prjVB1.vbp adı ilə saxlamaq olar.
5.

Layihənin proqram əlavəsində kompilyasiya edilməsi. Saxlanmış layihə yalnız
Visual Basic proqramlaşdırma sistemində icra edilə bilir. Bunun üçün layihəni exe
fayl tipində saxlamaq lazımdır. Bu məqsədlə [FileMake. ] əmrindən istifadə
edilir. Lakin bu imkan VB5.0 CCE versiyasında yoxdur.

Object yönlü proqramlaşdırma

Obyekt yönlü proqramlaşdırmanın əsas anlayışları: abstraksiya. nkapsulyasiya, varislik, polimorfızm- haqqında nə bilirsiniz?

Sualı verdi: Sevinc İsrafilova ( 29/03/2011 )
Kateqoriya: Proqramlaşdırma . Object yönlü proqramlaşdırm. Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (5 cavab var)

OOP – in əsas anlayışları :
1. Encapsulation – proqramçıya obyektləri qorumaq imkanı verir. Yəni private təyin etdiyimiz dəyişkənləri istifadəçidən gizlətmək mənasına gəlir ki, onsuz da istifadəçinin bunu istifadə etməsinə gərək yoxdur ve hətta istifadə etməməlidir.

2. İnheritance – bir sinifin metodlarını istifadə edən başqa siniflər yaratmağa kömək edir deyə bilərik.Məsələn bir şirkət sizdən işçiləri haqqında şirkətə lazımi məlumatlarını(maaş, ad, soyad və s.) saxlayan bir proqram qurulması istəyir. Və deyək ki, şirkətdə 3 növ işçi var: Manager, SalesPerson və Laborer.
Onda proqramçı üçün ən uyğun yol budur: İşçilərin adlarını, soyadlarını yaşlarını və maaşlarını təyin edən dəyişənlərdən və əlavə bonus verən bir metoddan ibarət Employee sinifi düzəltsin. Ondan sonra yaradacağımız Manager, SalesPerson və Laborer sinifləri artıq Employee sinifinin alt sinifləri olacaq. Yəni bu 3 sinif Employee base sinifindən törəyəcəklər. BU 3 sinif “Derived class”, onların törəndikləri sinif isə “Base class” adlanır. Əgər biz İnheritance – dan istifadə etməsəydik onda Employee sinifində yaratdığımız dəyişənləri və metodları yenidən bu 3 sinifdə yaratmalıydıq. Əgər daha çox dəyişən və metod olardısa onda bu inheritance-dan istifadə etməyən proqramçının xeyli vaxt itirməsinə və çox səliqəsiz bir proqram yaratmasına səbəb olardı. (Siz İnheritancedan istifadə edə-edə onun burda yazdığım səbəblərdən daha çox xeyirli olduğunu görəcəksiniz.)
Deməli, derived class-lar avtomatik olaraq base class-ın bütün özəlliklərinə sahib olurlar.

Və İnheritance C#-da iki nöqtə ilə qeyd edilir.

//Manager class-ı Employee class-ından miras //alır class Manager : Employee

Amma Javada extends keyword – ü ilə :

//Manager class-ı Employee class-ından miras //alır class Manager extends Employee

3. Polymorphism – Polymorphism bizə bunlari etməyə imkan verir:

Bu bizə runtime zamanı (Proqramı çalıştırdığımız zaman) derived class-dakı metodları base class-dakı metodlara referans etməklə çağırmağa şərait yaradır.

Bu bizə fərqli classlarda fərqli işləri görən metodları eyni adla adlandırmamıza imkan yaradır.

Bəs Polymorphismdən necə istifadə edilir:
Bunun üçün bir base classımız və ondan mirasla yaranan derived classlar olmalıdır. Base classda yaradılan bir metod digər siniflərin hamısında istifadə ediləcək ama bu metodların hamısının içi fərqli olacaq.

Base classda təyin etdiyimiz ve bütün classlar üçün ortaq istifadə etmək istediyimiz metodu base classda yazarkən bunu “virtual” olaraq təyin edib, istifadə etməliyik. Derived classlarda ise metodu “Override”keyword -ü ilə qeyd edməliyik (C#-da).

Base classda: public virtual string MaashinTeyinEdilmesi()

Derived classda: public override string MaashinTeyinEdilmesi()

Mən bu mövzuları bilirdim amma, sizə daha yaxşı anlatmaq üçün internetdə yaxşıca araşdırdım. İnşallah yazdıqlarımın azda olsa köməyi olar.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Abstract class-dan da mən yazım. Bəzən bunu OOP-in əsas cəhətlərindən biri kimi göstərirlər. Amma əsasən, yuxarıdakı trio keçərlidir.

Abstract class yarımçıq class da adlandırırlar. Çünki bu classlardan object yaratmaq olmur, sealed özəlliyi əlavə edə bilmirik(başqa classlar inherit edə bilmir sealed classlardan) və bu classlardan inherit(miras alan) edən classlar da ya abstract olmalıdır, yada abstract methodları override edilməlidir.

Abstract method necə olur?

Əvvəlcə abstract bir class tanımlayaq, abstract bir methodu olsun(VergiHesabla).
abstract class VergiHesablayici

public abstract double VergiHesabla();

>
İkinci bir class tanımlayaq. Həmin VergiHesablayici classından inherit etsin.
Bu zaman biz VergiHesabla methodunu override edəcəyik və override edərkən içini (body) dolduracağıq(abstract methodda body hissəsi olmur, prototype olur yalnız-içi doldurulmur).

class ElaveGelirVergisi: VergiHesablayici
public override double VergiHesablayici()
double vergi=maash*0.12;
return vergi;
>

p.s. İnterfacelər bütün methodları public və abstract olan istifadəçinin yaratdığı xüsusi typelardır.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

İkinci bir class tanımlayaq. Həmin VergiHesablayici classından inherit etsin.
Bu zaman biz VergiHesabla methodunu override edəcəyik və override edərkən içini (body) dolduracağıq(abstract methodda body hissəsi olmur, prototype olur yalnız-içi doldurulmur).

class ElaveGelirVergisi: VergiHesablayici
public override double VergiHesabla()
// method adını səhv yazmışdım, override etdiyi(absract) ilə adı eyni olmalı
double vergi=maash*0.12;
return vergi;
>

OOP (Obyekt yönümlü proqramlaşdırma) haqqında.

Obyekt yönümlü proqramlaşdırma paradiqması (OOP) problemin həllinə köklü fərqli yanaşma aparır. OOP həll edilməli olan problemə diqqət yetirmək əvəzinə, sistemi meydana gətirən obyektlərə diqqət yetirir.

Obyektlər, obyekt yönümlü proqramlaşdırma (OOP) dilinin əsas elementləridir. Bir obyekt həm vəziyyətə, həm də davranışa sahibdir.

Bir obyekt, adlandıra biləcəyimiz və təsvir edə biləcəyimiz bir şeydir. Obyektlər, proqramlarımızda modelləşdirmək istədiyimiz ‘şeylər’ dir və buna görə obyekt yönümlü bir proqramın məqsədi real dünyanı kodla təmsil etməkdir. Altıncı sinif kollecinin nümunəsini nəzərdən keçirsək, obyektlər tələbələr, müəllimlər, sinif otaqları və kompüterlər kimi şeylər olacaqdır.

Classları şablon kimi düşünsək, obyektlər şablonun tətbiqidir. Məsələn, əgər insan, bir insanın ola biləcəyi davranış və xüsusiyyətləri müəyyən edən bir classdırsa, biz də insan olmağın bütün tələblərini yerinə yetirdiyimiz üçün siz və mən bu insan classının obyektləriyik. Və ya avtomobili bir class olaraq düşünsək, müəyyən bir Honda Civic avtomobili həmin classın obyekti olardı. Bir avtomobilin sahib olduğu mühərrik, sükan, fənərlər və s.onun xüsusiyyətlərini , irəliləməsi, geriyə doğru hərəkət etməsi və s. onun davranışları olacaqdır. Obyekt yönümlü paradiqmanın gerçək dünyaya necə aid ola biləcəyini görə bilərik. Demək olar ki, real dünyada hər şeyi siniflər və obyektlər baxımından düşünmək olar, beləliklə bu hal OOP-ni populyar hala gətirir.

Obyekt və classlar anlayışları daxildə bir-birinə bağlıdır və obyekt yönümlü paradiqmanın əsasını təşkil edir.

Bir class ümumi davranış nümayiş etdirən, eyni xarakterik xüsusiyyətlərə malik olan obyektlər toplusunu təmsil edir. Ondan yarana biləcək obyektlərin planını və ya təsvirini verir. Bir class üzvü olaraq bir obyektin yaradılması instantasiya adlanır. Beləliklə, obyekt bir class nümunəsidir.

Obyekt yönümlü proqramlaşdırmada bir class, müəyyən bir obyekt tipinin metod və dəyişənlərinin şablon tərifidir. Beləliklə, obyekt bir classın müəyyən bir nümunəsidir; dəyişənlər əvəzinə həqiqi dəyərləri ehtiva edir.

• Classda, classın bütün və ya bəzi xüsusiyyətlərini miras ala biləcək alt classlar ola bilər. Hər bir alt class ilə class superclass olur.
• Alt classlar da öz ana classlarına aid olmayan öz metodlarını və dəyişənlərini təyin edə bilər.
• Bir classın və onun alt classlarının quruluşuna class iyerarxiyası deyilir.

Obyekt yönümlü proqramlaşdırmanın faydaları

Saxlanıla bilən (Maintainable)
Obyekt yönümlü Paradiqma metodları kodu daha uzunmüddətli edir. Səhvlərin mənbəyini müəyyən etmək, obyektlər müstəqil olduğundan daha asan olur. Yaxşı metodların dizayn prinsipləri sistemin dayanıqlığına kömək edir.

Yenidən istifadə edilə bilər (Reusable)
Obyektlər həm məlumatları, həm də məlumatların üzərində işləyən funksiyaları ehtiva etdiyindən, obyektləri özünə məxsus “qutular” hesab etmək olar. Bu, yeni sistemlərdə kodun təkrar istifadəsini asanlaşdırır.

Ölçüləndir (Scalable)
Obyekt yönümlü tətbiqetmələr, qurulmuş proqramlaşdırma köklərindən daha geniş miqyaslıdır. Bir obyektin interfeysi bir obyekti təkrar istifadə etmək üçün bir yol xəritəsi təmin etdiyi üçün, başqalarına təsir etmədən obyekt dəyişdirmək üçün lazım olan bütün məlumatları təmin edir. Bu, köhnə və səmərəsiz kodu daha sürətli alqoritmlərlə əvəz etməyi asanlaşdırır.

Obyekt yönümlü Paradiqmanın 4 əsas xarakteristikası

Abstraction (mücərrədlik)

Abstraksiya obyekt yönümlü proqramlaşdırma (OOP) dillərinin əsas anlayışlarından biridir. Əsas məqsədi istifadəçidən lazımsız detalları gizlətməklə mürəkkəbliyi idarə etməkdir. Bu, istifadəçiyə bütün gizli mürəkkəbliyi başa düşmədən və ya düşünmədən təqdim edilən abstraksiyanın üstündən daha mürəkkəb məntiq tətbiq etməyə imkan verir.

Abstraksiya, əsas məqama yönəltmək və yersizliyi ləğv etməkdir. Bir əhatə dairəsi olmadıqca bu məna vermir. Üstündəki şəkildəki nümunədə, Baytar həkimi (Vet) üçün həkimi üçün vacib olan pişiyə baxışı pişiyin hissələri olardı, pişiyin sevimli oyuncaq kimi bir şey olması onun üçün heç bir əhəmiyyət kəsb edə bilməz, halbuki pişiyin sahibi üçün onun pişiyə baxışı həkimdən fərqlidir.

Həqiqi bir abstraksiya nümunəsi bir avtomobildir. Bir avtomobili idarə etmək üçün, həqiqətən, avtomobilin kapotun altında nə olduğunu bilməməyimizə gərək yoxdur, ancaq bizə açıqladığı məlumatları və davranışları bilməliyik. Məlumatlar avtomobilin tablosuna yerləşdirilir və davranışı avtomobili idarə etmək üçün istifadə edə biləcəyimiz idarəetmə vasitələri ilə əks olunur.

Encapsulation (əhatə etmə)

Encapsulation lazımsız məlumatları gizlədir. Digər insanların bilməsini istəmədiyiniz şeylərin gizli qalması deməkdir. Məsələn, görüntüdə professorun tələbənin tapşırığını necə yerinə yetirdiyini bilməsi lazım deyil. Son məhsulla daha çox maraqlanır.

Inheritance (Miras alma)

Bənzərliklər çox vaxt dünyada mövcuddur. Yuxarıdakı şəkildəki kimi, ABŞ-ın iki prezidenti Corc H.W Buş (41-ci Prezident) ilə Corc W. Buş (43-cü Prezident) arasında bəzi oxşarlıqların olduğunu asanlıqla görmək olar.
George W. Buş George H.W Buşun oğludur. Atasından bioloji xüsusiyyətləri miras alır, eyni zamanda onun Corc W. Buş kimi tanıya biləcəyi özünəməxsus xüsusiyyətinə malikdir. Bu, bizi obyektlər arasında “bir” əlaqəni yaradan miras düşüncəsinə gətirir.

Polymorphism (çoxsahəli)

Geniş mənada, polimorfizm bizə müxtəlif tipli qurumlar üçün eyni interfeysdən istifadə etmək imkanı verir. Polimorfizmin iki əsas növü var, kompilyasiya vaxtı və iş vaxtı. İki sahə metoduna sahib bir Shape sinifiniz olduğunu söyləyin. Biri bir dairənin sahəsini qaytarır və tək tam qəbul edir; yəni radius girişdir və ərazini qaytarır. Başqa bir üsul bir düzbucağın sahəsini hesablayır və iki giriş, uzunluq və genişlik götürür. Kompilyator, çağırışdakı arqumentlərin sayına əsasən hansı sahə metodunun çağırılacağına əsasən qərar verə bilər. Bu polimorfizmin tərtib olunan zaman növüdür.

“Polimorfizm” sözü iki yunan sözündən, “çox” və “forma” sözlərindən gəlir. Polimorfizm ideyasını müxtəlif heyvanların “danışmaq” istədiyi ssenaridən asanlıqla nümunə göstərə bilərik. Yuxarıdakı şəkildən göründüyü kimi, hər bir heyvanın öz “danışma” üsulu var. Beləliklə, insan bütün heyvanlardan “danışmağı” istədikdə, hər bir heyvan öz qaydasında cavab verir. Bu, fərqli nümunələrin eyni şəkildə müalicə edilə biləcəyi polimorfizmin gücünü göstərir.

Mənbələr :

  1. https://sites.google.com/site/cs4217jan2011team2/programming-paradigms/object-oriented-paradigm
  2. https://ducmanhphan.github.io/2020-01-31-Some-important-concepts-of-OOP/
  3. https://subscription.packtpub.com/book/application_development/9781786463593/1/ch01lvl1sec13/object-oriented-paradigm

Comments are closed, but trackbacks and pingbacks are open.