Statik Bağlama ile Dinamik Bağlama Arasındaki Fark

İçindekiler:

Statik Bağlama ile Dinamik Bağlama Arasındaki Fark
Statik Bağlama ile Dinamik Bağlama Arasındaki Fark

Video: Statik Bağlama ile Dinamik Bağlama Arasındaki Fark

Video: Statik Bağlama ile Dinamik Bağlama Arasındaki Fark
Video: Statik-Dinamik Kapsam Bağlama Örnek 1 2024, Temmuz
Anonim

Anahtar Farkı – Statik Bağlama ve Dinamik Bağlama

Java ve C gibi programlama dilleri Nesne Yönelimli Programlamayı (OOP) destekler. Nesneleri kullanarak yazılım oluşturmaya izin verir. Bir yazılım sisteminde veya bir programda birçok nesne vardır. Bu nesnelerin öznitelikleri ve yöntemleri vardır. Nitelikler özellikleri tanımlar. Yöntemler, nesne tarafından gerçekleştirilebilecek eylemleri tanımlar. Veriler, yöntemler kullanılarak nesnelerden geçirilir. Gerekli değerler, parametrelerle yöntem çağrıları yoluyla gönderilir. Gerçek yöntem uygulaması, yöntem tanımındadır. Yöntem çağrısı ile yöntem tanımı arasında bir bağlantı vardır. Bağlayıcı olarak bilinir. İki tür bağlama vardır. Bunlar statik bağlama ve dinamik bağlamadır. Statik bağlama ile dinamik bağlama arasındaki temel fark, statik bağlamada bağlamanın derleme zamanında çözülmesi, dinamik bağlamanın ise gerçek yürütme zamanı olan çalışma zamanında çözülmesidir. Bu makalede, bu iki bağlama mekanizması arasındaki fark tartışılmaktadır.

Statik Bağlama nedir?

Bağlama, bir yöntem çağrısı ile yöntem tanımları arasındaki bağlantıdır.

Statik Bağlama ve Dinamik Bağlama Arasındaki Fark
Statik Bağlama ve Dinamik Bağlama Arasındaki Fark

Şekil 01: Statik Bağlama ve Dinamik Bağlama

Java ile yazılmış aşağıdaki programa bakın.

genel A sınıfı{

public void method1(){

System.out.println(“Yöntem1”);

}

public void method2(){

System.out.println(“Yöntem2”);

}

public static void main(String args){

A nesnesi=yeni A();

obj.method1();

obj.method2();

}

}

Yukarıdaki programa göre, A tipi bir nesne oluşturulur. Daha sonra method1 ve method2 çağrılır. Yürütme için hangi yöntemin çağrılacağını belirleme, bağlama olarak bilinir. Obj.method1() ifadesi, method1()'i çağıracak ve obj.method2(), method2()'yi çağıracaktır. Bu bağlantı bağlayıcıdır.

Statik bağlamada, bağlama derleyici tarafından derleme zamanında çözülür. Erken bağlama olarak da bilinir. Bağlama, bir program gerçekten çalışmadan önce gerçekleşir. Statik bağlama, yöntem aşırı yüklemesinde oluşur. Java ile yazılmış aşağıdaki programa bakın.

genel boşluk Hesaplaması{

genel geçersiz toplam(int x, int y){

System.out.println(“Toplam “, x+y);

}

genel geçersiz toplam(çift x, çift y){

System.out.println(“Toplam “, x+y);

}

public static void main(String args){

Hesaplama cal=yeni Hesaplama();

cal.sum(2, 3);

cal.sum(5.1, 6.4);

}

}

Yukarıdaki programa göre, iki tamsayı geçerken, iki tamsayılı yöntem çağrılır. İki double değeri geçerken, iki double değere karşılık gelen yöntem çağrılır. Bu bağlama işlemi derleme sırasında gerçekleşir. Derleyici, cal.sum(2, 3) için iki tamsayı değeriyle toplam yöntemini çağırması gerektiğini bilir. cal(5.1, 6.4) için, iki double değeri olan toplam yöntemini çağırır. Gerekli tüm bilgiler çalışma zamanından önce bilinir, bu nedenle program verimliliğini ve yürütme hızını artırır.

Dinamik Bağlama nedir?

Dinamik Bağlamada derleyici, derleme zamanında bağlamayı çözmez. Bağlama, çalışma zamanında gerçekleşir. Geç bağlama olarak da bilinir. Dinamik Bağlama, yöntem geçersiz kılma işleminde gerçekleşir. Java ile yazılmış programa bakın.

public class Shape(){

public void draw(){

System.out.println(“Şekil çizin”);

}

}

public class Circle(), Shape'i genişletir{

public void draw(){

System.out.println(“Daire çizin”);

}

}

public class Triangle() Shape'i genişletir{

public void draw(){

System.out.println(“Üçgen çizin”);

}

}

genel sınıf Testi{

public static void main(String args){

Şekil s;

s=new Shape();

s.draw();

s=new Circle();

s.draw();

s=yeni Üçgen();

s.draw();

}

}

Yukarıdaki programa göre Shape sınıfında draw() metodu var. Class Circle ve Class Triangle, Shape sınıfını genişletir. Class Circle ve class Triangle, Shape sınıfının özniteliklerini ve yöntemlerini devralabilir. Bu nedenle, Shape sınıfı, süper sınıf veya üst sınıftır. Sınıf Çemberi ve Sınıf Üçgeni, alt sınıflar veya türetilmiş sınıflardır. Bu sınıflar ayrıca kendi uygulamalarıyla beraber draw() yöntemine sahiptir. Bu nedenle, süper sınıftaki draw() yöntemi geçersiz kılınır.

Ana yöntemde farklı nesneler çağrılır. Shape tipinde s olan bir referans değişkeni vardır. Ardından, s belirli sınıfa göre yöntemi çağırır. Derleme zamanında, derleyici yalnızca süper sınıf çekme yöntemine başvuracaktır. Gerçek yürütme başladığında, farklı çekme yöntemlerinin yürütülmesine yol açacaktır. İlk olarak, s Shape türündeki nesneyi işaret edecektir. Bu nedenle Shape sınıfında draw yöntemini çağıracaktır. Daha sonra s, Circle türündeki nesneyi işaret edecek ve Circle sınıfının çizim yöntemini çağıracaktır. Son olarak, s, Triangle türündeki nesneye atıfta bulunacak ve Triangle sınıfındaki draw yöntemini çağıracaktır. Başvuru değişkeni Shape türünde olsa da, bağlama nesne türüne bağlıdır. Bu kavram Dinamik Bağlama olarak bilinir. Bilgiler çalışma zamanında sağlanır, bu nedenle yürütme hızı statik bağlamaya kıyasla daha yavaştır.

Statik Bağlama ile Dinamik Bağlama Arasındaki Benzerlik Nedir?

Bunların ikisi de bir nesnenin birden çok şekilde davranmasına izin veren bir polimorfizmle ilgilidir

Statik Bağlama ile Dinamik Bağlama Arasındaki Fark Nedir?

Statik Bağlama ve Dinamik Bağlama

Statik Bağlama, derleme süresi boyunca bir işlevi çağırmak için gerekli tüm bilgileri toplayan bağlama türüdür. Dinamik Bağlama, çalışma süresi sırasında bir işlevi çağırmak için gerekli tüm bilgileri toplayan bağlama türüdür.
Bağlama Zamanı
Statik Bağlama, derleme zamanında gerçekleşir. Dinamik bağlama, çalışma zamanında gerçekleşir.
İşlevsellik
Statik Bağlama, bağlama için tür bilgilerini kullanır. Dinamik Bağlama, bağlamayı çözmek için nesneleri kullanır.
Gerçek Nesne
Statik bağlama, bağlama için gerçek bir nesne kullanmaz. Dinamik bağlama, bağlama için gerçek nesneyi kullanın.
Eş anlamlılar
Statik bağlama, erken bağlama olarak da bilinir. Dinamik bağlama, geç bağlama olarak da bilinir.
Yürütme
Statik bağlamada yürütme hızı yüksektir. Dinamik bağlamada yürütme hızı düşüktür.
Örnek
Yöntem aşırı yüklemesinde statik bağlama kullanılır. Dinamik bağlama, yöntemi geçersiz kılmada kullanılır.

Özet – Statik Bağlama ve Dinamik Bağlama

Yöntem çağrısı ile yöntem tanımı arasında bir bağlantı vardır. Bağlayıcı olarak bilinir. Statik bağlama ve dinamik bağlama olarak adlandırılan iki tür bağlama vardır. Statik bağlama ve dinamik bağlama arasındaki fark, statik bağlamada bağlamanın derleme zamanında çözülmesi, dinamik bağlamanın ise gerçek yürütme zamanı olan çalışma zamanında çözülmesidir. Gerekli bilgiler çalışma zamanından önce sağlandığından, dinamik bağlamaya kıyasla statik bağlama yürütmede hızlıdır.

Statik Bağlama ve Dinamik Bağlamanın PDF'sini indirin

Bu makalenin PDF sürümünü indirebilir ve alıntı notuna göre çevrimdışı amaçlarla kullanabilirsiniz. Lütfen PDF sürümünü buradan indirin: Statik Bağlama ve Dinamik Bağlama Arasındaki Fark

Önerilen: