Mobil Programlama

iOS

DERS PROGRAMI
iOS 101 Ders Programı

Dinamik(Dynamic) ve Statik(Static) Bağlama (Binding)

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

Dinamik bağlama, derleyicinin çağrılan fonksiyon ya da değişken hakkındaki çözümlemeleri ancak icra zamanında (run time) yapabilmesi durumudur. Dinamik bağlamaya literatürde geç bağlama (late binding) adı da verilmektedir. Örneğin bir A sınıfından bir B alt sınıfı ürettiğimizi düşünelim. Süper sınıfımız A’da X adlı bir metodumuz varsa,ve alt sınıf B’de de bu metot override edilmişse (aynı isim farklı içerikle kullanılmışsa) bu X metodunun çağrılması durumunda, gerekli çözümleme ya da hangi tipteki bir nesneye referans verileceği, derleyici tarafından ancak icra zamanında gerçekleştirilebilir.

 

ÖRNEK PROGRAM:

 

Aşağıdaki örnekte MotorTasit adlı bir super sınıftan otomobil adlı bir alt sınıf türetilmiştir. Her ikisinde de yaz adlı metot aynı isim ve farklı içeriktedir:

class MotorTasit

{

var tip: String="İÇTEN YANMALI MOTOR";



func yaz()

{

print("MOTORLU TAŞITLAR...\(tip)..KULLANIR");

}

}



class Otomobil : MotorTasit

{

var ad:String=""



func otomobil(tip:String)

{

self.tip = tip;

}



override func yaz()

{super.yaz()

print("OTOMOBİL \(tip) ...KULLANIR");

}

}

var mercedes=Otomobil()

mercedes.ad="MERCEDES"

mercedes.yaz()//DİNAMİK BAĞLAMA

print("TİP \(mercedes.ad) ..DİR")//STATİK BAĞLAMA

 

PROGRAMIN ÇIKTISI

 

MOTORLU TAŞITLAR...İÇTEN YANMALI MOTOR..KULLANIR

OTOMOBİL İÇTEN YANMALI MOTOR ...KULLANIR

TİP MERCEDES ..DİR

 

Statik bağlama ya da erken bağlama (early binding), derleyici tarafında fonksiyon çağırmaları ya da benzer işlemlerde gerekli çözümlemelerin derleme zamanında (compile time) yapılabildiği durumdur. Genellikle private tipteki sınıf ya da metotlarda static bağlama söz konusudur.