სხვაობა სტატიკური და დინამიური შეკვრას შორის

Სარჩევი:

სხვაობა სტატიკური და დინამიური შეკვრას შორის
სხვაობა სტატიკური და დინამიური შეკვრას შორის

ვიდეო: სხვაობა სტატიკური და დინამიური შეკვრას შორის

ვიდეო: სხვაობა სტატიკური და დინამიური შეკვრას შორის
ვიდეო: The Final Message He Shared with Me #audiobooks #audio #motivation 2024, ნოემბერი
Anonim

ძირითადი განსხვავება – სტატიკური შეკვრა დინამიური შეკვრის წინააღმდეგ

პროგრამირების ენები, როგორიცაა Java და C, მხარს უჭერენ ობიექტზე ორიენტირებულ პროგრამირებას (OOP). ეს საშუალებას აძლევს შექმნას პროგრამული უზრუნველყოფა ობიექტების გამოყენებით. პროგრამულ სისტემაში ან პროგრამაში ბევრი ობიექტია. ამ ობიექტებს აქვთ ატრიბუტები და მეთოდები. ატრიბუტები აღწერს მახასიათებლებს. მეთოდები აღწერს მოქმედებებს, რომლებიც შეიძლება განახორციელოს ობიექტმა. მონაცემები გადაეცემა ობიექტებს მეთოდების გამოყენებით. საჭირო მნიშვნელობები იგზავნება მეთოდის გამოძახებით პარამეტრებით. მეთოდის ფაქტობრივი განხორციელება მოცემულია მეთოდის განმარტებაში. არსებობს კავშირი მეთოდის გამოძახებასა და მეთოდის განსაზღვრას შორის.იგი ცნობილია როგორც სავალდებულო. არსებობს ორი სახის შეკვრა. ისინი სტატიკური და დინამიური სავალდებულოა. სტატიკურ დაკავშირებასა და დინამიურ დაკავშირებას შორის მთავარი განსხვავება ისაა, რომ სტატიკური დაკავშირებისას, შეკვრა წყდება კომპილაციის დროს, ხოლო დინამიური კავშირი წყდება გაშვების დროს, რაც არის შესრულების ფაქტობრივი დრო. ეს სტატია განიხილავს განსხვავებას ამ ორ სავალდებულო მექანიზმს შორის.

რა არის სტატიკური შეკვრა?

დაკავშირება არის კავშირი მეთოდის გამოძახებასა და მეთოდის განმარტებებს შორის.

განსხვავება სტატიკური და დინამიური შეკვრას შორის
განსხვავება სტატიკური და დინამიური შეკვრას შორის

სურათი 01: სტატიკური და დინამიური შეკვრა

იხილეთ ქვემოთ მოცემული პროგრამა Java-ში.

საჯარო კლასი A{

public void მეთოდი1(){

System.out.println("მეთოდი1");

}

საჯარო ბათილობის მეთოდი2(){

System.out.println("მეთოდი2");

}

საჯარო სტატიკური სიცარიელე მთავარი (სტრიქონი არგები){

A obj=ახალი A();

obj.method1();

obj.method2();

}

}

ზემოხსენებული პროგრამის მიხედვით იქმნება A ტიპის ობიექტი. შემდეგ მეთოდს1 და მეთოდს2 ეწოდება. იმის დადგენა, თუ რომელი მეთოდი უნდა გამოიძახოს შესრულება, ცნობილია როგორც სავალდებულო. განცხადება obj.method1() გამოიძახებს მეთოდს1() და obj.method2() გამოიძახებს მეთოდ2(). ეს ბმული სავალდებულოა.

სტატიკური დაკავშირებისას, დაკავშირება წყდება კომპილაციის დროს შემდგენლის მიერ. იგი ასევე ცნობილია როგორც ადრეული შეკვრა. დაკავშირება ხდება პროგრამის რეალურად გაშვებამდე. სტატიკური შეკვრა ხდება მეთოდის გადატვირთვისას. იხილეთ ქვემოთ მოცემული პროგრამა Java-ზე დაწერილი.

საჯარო ბათილობის გაანგარიშება{

საჯარო ბათილი ჯამი (int x, int y){

System.out.println("ჯამია ", x+y);

}

საჯარო ბათილი ჯამი (ორმაგი x, ორმაგი y){

System.out.println("ჯამია ", x+y);

}

საჯარო სტატიკური სიცარიელე მთავარი (სტრიქონი არგები){

გაანგარიშება cal=ახალი გაანგარიშება();

cal.sum(2, 3);

cal.sum(5.1, 6.4);

}

}

ზემოხსენებული პროგრამის მიხედვით, ორი მთელი რიცხვის გადაცემისას გამოიძახება მეთოდი ორი მთელი რიცხვით. ორი ორმაგი მნიშვნელობის გადაცემისას გამოიძახება მეთოდი, რომელიც შეესაბამება ორ ორმაგ მნიშვნელობას. ეს სავალდებულო პროცესი ხდება შედგენის დროს. შემდგენელმა იცის, რომ მან უნდა გამოიძახოს sum მეთოდი ორი მთელი მნიშვნელობით cal.sum(2, 3). cal(5.1, 6.4), ის გამოიძახებს ჯამის მეთოდს ორი ორმაგი მნიშვნელობით. ყველა საჭირო ინფორმაცია ცნობილია გაშვებამდე, ამიტომ ზრდის პროგრამის ეფექტურობას და შესრულების სიჩქარეს.

რა არის Dynamic Binding?

Dynamic Binding-ში შემდგენელი არ წყვეტს დაკავშირებას კომპილაციის დროს. შეკვრა ხდება გაშვების დროს. იგი ასევე ცნობილია, როგორც გვიანი შეკვრა. დინამიური შეკვრა ხდება მეთოდის გადაფარვისას. იხილეთ Java-ში დაწერილი პროგრამა.

საჯარო კლასი Shape(){

public void გათამაშება(){

System.out.println(„ფორმის დახატვა“);

}

}

public class Circle() აფართოებს ფორმას{

public void გათამაშება(){

System.out.println("წრე დახატე");

}

}

public class Triangle() აფართოებს ფორმას{

public void გათამაშება(){

System.out.println(„სამკუთხედის დახატვა“);

}

}

საჯარო კლასის ტესტი{

public static void main (სტრიქონი args){

ფორმის s;

s=new Shape();

s.draw();

s=ახალი წრე();

s.draw();

s=ახალი სამკუთხედი();

s.draw();

}

}

ზემოხსენებული პროგრამის მიხედვით, კლასს Shape აქვს მეთოდი draw(). კლასის წრე და კლასის სამკუთხედი აფართოებს Shape კლასს. კლასის წრესა და კლასს სამკუთხედს შეუძლიათ დაიმკვიდრონ Shape კლასის ატრიბუტები და მეთოდები. აქედან გამომდინარე, class Shape არის სუპერ კლასი ან მშობელი კლასი. კლასის წრე და კლასის სამკუთხედი არის ქვეკლასები ან მიღებული კლასები. ამ კლასებს ასევე აქვთ draw() მეთოდი საკუთარი განხორციელებით. ამიტომ, draw() მეთოდი სუპერ კლასში გადაირიცხება.

მთავარ მეთოდში ხდება სხვადასხვა ობიექტების გამოძახება. არსებობს Shape ტიპის საცნობარო ცვლადი, რომელიც არის s. შემდეგ, s იწვევს მეთოდს კონკრეტული კლასის მიხედვით. კომპილაციის დროს, შემდგენელი მიმართავს მხოლოდ სუპერ კლასის გათამაშების მეთოდს.როდესაც ფაქტობრივი შესრულება იწყება, ეს გამოიწვევს გათამაშების სხვადასხვა მეთოდის შესრულებას. პირველი, s მიუთითებს Shape ტიპის ობიექტზე. ამიტომ, ის გამოიძახებს ხატვის მეთოდს Shape კლასში. მაშინ s მიუთითებს Circle ტიპის ობიექტზე და გამოიძახებს Circle კლასის ხატვის მეთოდს. და ბოლოს, s მიუთითებს სამკუთხედის ტიპის ობიექტზე და გამოიძახებს ხატვის მეთოდს Triangle კლასში. მიუხედავად იმისა, რომ საცნობარო ცვლადი არის Shape ტიპის, კავშირი დამოკიდებულია ობიექტის ტიპზე. ეს კონცეფცია ცნობილია როგორც Dynamic Binding. ინფორმაცია მოწოდებულია გაშვების დროს, ამიტომ შესრულების სიჩქარე უფრო ნელია სტატიკური დაკავშირებასთან შედარებით.

რა მსგავსებაა სტატიკური და დინამიური შეკვრას შორის?

ორივე ეს დაკავშირებულია პოლიმორფიზმთან, რომელიც საშუალებას აძლევს ობიექტს მოიქცეს მრავალი გზით

რა განსხვავებაა სტატიკური და დინამიური შეკვრას შორის?

სტატიკური შეკვრა vs დინამიური შეკვრა

სტატიკური შეკვრა არის შეკვრის ტიპი, რომელიც აგროვებს ყველა საჭირო ინფორმაციას ფუნქციის გამოსაძახებლად კომპილაციის დროს. Dynamic Binding არის კავშირის ტიპი, რომელიც აგროვებს ყველა საჭირო ინფორმაციას ფუნქციის გამოსაძახებლად გაშვების დროს.
შეკვრის დრო
სტატიკური დაკავშირება ხდება კომპილაციის დროს. დინამიური შეკვრა ხდება გაშვების დროს.
ფუნქციონალობა
Static Binding იყენებს ტიპის ინფორმაციას შესაკრავად. Dynamic Binding იყენებს ობიექტებს დაკავშირების გადასაჭრელად.
ფაქტობრივი ობიექტი
სტატიკური შეკვრა არ იყენებს რეალურ ობიექტს შესაკრავად. დინამიური შეკვრა, გამოიყენეთ ფაქტობრივი ობიექტი შესაკრავად.
სინონიმები
სტატიკური შეკვრა ასევე ცნობილია როგორც ადრეული შეკვრა. დინამიური შეკვრა ასევე ცნობილია, როგორც გვიანი შეკვრა.
აღსრულება
შესრულების სიჩქარე სწრაფია სტატიკური დაკავშირებისას. შესრულების სიჩქარე დაბალია დინამიურ დაკავშირებაში.
მაგალითი
სტატიკური შეკვრა გამოიყენება მეთოდის გადატვირთვისას. დინამიური დაკავშირება გამოიყენება მეთოდის გადაფარვისას.

შეჯამება – სტატიკური შეკვრა vs დინამიური შეკვრა

არსებობს კავშირი მეთოდის გამოძახებასა და მეთოდის განსაზღვრას შორის.იგი ცნობილია როგორც სავალდებულო. არსებობს ორი სახის შეკვრა, რომელსაც ეწოდება სტატიკური და დინამიური შეკვრა. განსხვავება სტატიკურ დაკავშირებასა და დინამიურ დაკავშირებას შორის არის ის, რომ სტატიკური კავშირის დროს, კავშირი წყდება შედგენის დროს, ხოლო დინამიური კავშირი წყდება გაშვების დროს, რაც არის შესრულების ფაქტობრივი დრო. იმის გამო, რომ საჭირო ინფორმაცია მოწოდებულია გაშვების დრომდე, სტატიკური შეკვრა სწრაფია დინამიურ დაკავშირებასთან შედარებით.

ჩამოტვირთეთ PDF-ის Static Binding vs Dynamic Binding

შეგიძლიათ ჩამოტვირთოთ ამ სტატიის PDF ვერსია და გამოიყენოთ იგი ოფლაინ მიზნებისთვის ციტირების შენიშვნის მიხედვით. გთხოვთ ჩამოტვირთოთ PDF ვერსია აქ: განსხვავება სტატიკური და დინამიური შეკვრას შორის

გირჩევთ: