Statik Bağlama və Dinamik Bağlama Arasındakı Fərq

Mündəricat:

Statik Bağlama və Dinamik Bağlama Arasındakı Fərq
Statik Bağlama və Dinamik Bağlama Arasındakı Fərq

Video: Statik Bağlama və Dinamik Bağlama Arasındakı Fərq

Video: Statik Bağlama və Dinamik Bağlama Arasındakı Fərq
Video: Dinamik ve Statik Arasındaki Fark 2024, Dekabr
Anonim

Əsas Fərq – Statik Bağlama və Dinamik Bağlama

Java və C kimi proqramlaşdırma dilləri Obyekt yönümlü Proqramlaşdırmanı (OOP) dəstəkləyir. Obyektlərdən istifadə edərək proqram təminatı yaratmağa imkan verir. Proqram sistemində və ya proqramda çoxlu obyektlər var. Bu obyektlərin atributları və metodları var. Atributlar xüsusiyyətləri təsvir edir. Metodlar obyektin yerinə yetirə biləcəyi hərəkətləri təsvir edir. Metodlardan istifadə etməklə məlumat obyektlər vasitəsilə ötürülür. Lazımi dəyərlər parametrlərlə metod çağırışları vasitəsilə göndərilir. Faktiki metodun tətbiqi metodun tərifindədir. Metod çağırışı ilə metodun tərifi arasında əlaqə var. Bağlama kimi tanınır. İki növ bağlama var. Onlar statik bağlama və dinamik bağlamadır. Statik bağlama ilə dinamik bağlama arasındakı əsas fərq ondan ibarətdir ki, statik bağlamada bağlama tərtib zamanı həll olunur, dinamik bağlama isə faktiki icra vaxtı olan icra zamanı həll olunur. Bu məqalə bu iki bağlama mexanizmi arasındakı fərqdən bəhs edir.

Statik Bağlama nədir?

Binding metod çağırışı və metod tərifləri arasında əlaqədir.

Statik Bağlama və Dinamik Bağlama Arasındakı Fərq
Statik Bağlama və Dinamik Bağlama Arasındakı Fərq

Şəkil 01: Statik Bağlama və Dinamik Bağlama

Java-da yazılmış aşağıdakı proqrama baxın.

ictimai sinif A{

ictimai etibarsızlıq metodu1(){

System.out.println("Metod1");

}

ictimai etibarsızlıq metodu2(){

System.out.println("Metod2");

}

public statik etibarsız əsas(String args){

A obyekt=yeni A();

obj.method1();

obj.method2();

}

}

Yuxarıda göstərilən proqrama uyğun olaraq A tipli obyekt yaradılır. Sonra metod1 və metod2 çağırılır. Hansı metodun icraya çağırılmalı olduğunu müəyyən etmək məcburiyyət kimi tanınır. Obj.method1() ifadəsi method1() və obj.method2() metodu2() çağıracaq. Bu keçid məcburidir.

Statik bağlamada bağlama kompilyasiya zamanı kompilyator tərəfindən həll edilir. Erkən bağlama kimi də tanınır. Bağlama proqram həqiqətən işə düşməzdən əvvəl baş verir. Statik bağlama metodun həddindən artıq yüklənməsi zamanı baş verir. Java-da yazılmış aşağıdakı proqrama baxın.

ictimai etibarsız Hesablama{

ictimai etibarsızlıq məbləği(int x, int y){

System.out.println("Cəmi ", x+y);

}

ictimai etibarsızlıq məbləği(ikiqat x, ikiqat y){

System.out.println("Cəmi ", x+y);

}

public statik etibarsız əsas(String args){

Hesablama cal=yeni Hesablama();

kal.sum(2, 3);

kal.sum(5.1, 6.4);

}

}

Yuxarıdakı proqrama əsasən, iki tam ədədi ötürərkən, iki tam ədədi olan üsul çağırılacaq. İki qoşa dəyər ötürüldükdə, iki qoşa dəyərə uyğun gələn metod çağırılacaq. Bu bağlama prosesi kompilyasiya zamanı baş verir. Kompilyator bilir ki, o, cal.sum(2, 3) üçün iki tam qiymətli sum metodunu çağırmalıdır. cal(5.1, 6.4) üçün o, iki cüt dəyərlə cəm metodunu çağıracaq. Bütün tələb olunan məlumatlar icra vaxtından əvvəl məlumdur, ona görə də proqramın səmərəliliyini və icra sürətini artırır.

Dinamik Bağlama nədir?

Dinamik Bağlamada kompilyator kompilyasiya zamanı bağlamanı həll etmir. Bağlama işləmə zamanı baş verir. Gec bağlama kimi də tanınır. Dinamik Bağlama metodu ləğv edərkən baş verir. Java-da yazılmış proqrama baxın.

ictimai sinif Shape(){

ictimai etibarsız çəkiliş(){

System.out.println("Forma çək");

}

}

ictimai sinif Circle() Formanı genişləndirir{

ictimai etibarsız çəkiliş(){

System.out.println("Dairə çək");

}

}

ictimai sinif Triangle() formanı genişləndirir{

ictimai etibarsız çəkiliş(){

System.out.println("Üçbucaq çək");

}

}

ictimai sinif Testi{

public statik etibarsız əsas(String args){

Forma s;

s=new Shape();

s.draw();

s=new Circle();

s.draw();

s=yeni Üçbucaq();

s.draw();

}

}

Yuxarıdakı proqrama əsasən Shape sinfində draw() metodu var. Class Circle və class Triangle Shape sinifini genişləndirir. Class Circle və class Triangle Shape sinifinin atribut və üsullarını miras ala bilər. Buna görə də, Class Shape super sinif və ya ana sinifdir. Class Circle və Class Triangle alt siniflər və ya törəmə siniflərdir. Bu siniflərin öz tətbiqləri ilə draw() metodu da var. Buna görə də, super sinifdə draw() metodu ləğv edilib.

Əsas metodda müxtəlif obyektlər çağırılır. Shape tipli bir istinad dəyişəni var, bu s. Sonra s xüsusi sinfə uyğun olaraq metodu çağırır. Kompilyasiya zamanı kompilyator yalnız super sinif çəkmə metoduna istinad edəcək. Faktiki icra başlandıqda, müxtəlif çəkiliş üsullarının icrasına səbəb olacaqdır. Birincisi, s Shape tipli obyektə işarə edəcək. Buna görə də o, Shape sinfində çəkiliş metodunu işə salacaq. Sonra s Circle tipli obyekti göstərəcək və o, Circle sinifinin çəkiliş metodunu işə salacaq. Nəhayət, s Triangle tipli obyektə istinad edəcək və o, Triangle sinfində çəkiliş metodunu işə salacaq. İstinad dəyişəni Shape tipində olsa da, bağlama obyektin növündən asılı olur. Bu konsepsiya Dinamik Bağlama kimi tanınır. Məlumat icra zamanı təmin edilir, buna görə də icra sürəti statik bağlama ilə müqayisədə daha yavaşdır.

Statik Bağlama və Dinamik Bağlama Arasındakı oxşarlıq nədir?

Bunların hər ikisi obyektin müxtəlif üsullarla davranmasına imkan verən polimorfizmlə bağlıdır

Statik Bağlama ilə Dinamik Bağlama Arasındakı Fərq Nədir?

Statik Bağlama və Dinamik Bağlama

Statik Bağlama kompilyasiya zamanı funksiyaya zəng etmək üçün bütün tələb olunan məlumatları toplayan bağlama növüdür. Dinamik Bağlama işləmə zamanı funksiyaya zəng etmək üçün bütün tələb olunan məlumatları toplayan bağlama növüdür.
Bağlama vaxtı
Statik Bağlama kompilyasiya zamanı baş verir. Dinamik bağlama icra zamanı baş verir.
Funksionallıq
Statik Bağlama bağlama üçün növ məlumatından istifadə edir. Dinamik Bağlama, bağlamanı həll etmək üçün obyektlərdən istifadə edir.
Faktiki Obyekt
Statik bağlama bağlama üçün faktiki obyektdən istifadə etmir. Dinamik bağlama, bağlama üçün faktiki obyektdən istifadə edin.
Sinonimlər
Statik bağlama həm də erkən bağlama kimi tanınır. Dinamik bağlama gec bağlama kimi də tanınır.
İcra
İcra sürəti statik bağlamada yüksəkdir. İcra sürəti dinamik bağlamada aşağıdır.
Nümunə
Statik bağlama metodun həddən artıq yüklənməsində istifadə olunur. Dinamik bağlama metodu ləğv edərkən istifadə olunur.

Xülasə – Statik Bağlama və Dinamik Bağlama

Metod çağırışı ilə metodun tərifi arasında əlaqə var. Bağlama kimi tanınır. Statik bağlama və dinamik bağlama adlanan iki növ bağlama var. Statik bağlama ilə dinamik bağlama arasındakı fərq ondan ibarətdir ki, statik bağlamada bağlama tərtib zamanı həll edilir, dinamik bağlama isə faktiki icra vaxtı olan icra zamanı həll edilir. Tələb olunan məlumat icra vaxtından əvvəl təmin edildiyi üçün statik bağlama dinamik bağlama ilə müqayisədə sürətli icra olunur.

Statik Bağlama və Dinamik Bağlamanın PDF faylını endirin

Bu məqalənin PDF versiyasını yükləyə və sitat qeydinə əsasən onu oflayn məqsədlər üçün istifadə edə bilərsiniz. Zəhmət olmasa PDF versiyasını buradan endirin: Statik Bağlama və Dinamik Bağlama Arasındakı Fərq

Tövsiyə: