ความแตกต่างระหว่าง Static Binding และ Dynamic Binding

สารบัญ:

ความแตกต่างระหว่าง Static Binding และ Dynamic Binding
ความแตกต่างระหว่าง Static Binding และ Dynamic Binding

วีดีโอ: ความแตกต่างระหว่าง Static Binding และ Dynamic Binding

วีดีโอ: ความแตกต่างระหว่าง Static Binding และ Dynamic Binding
วีดีโอ: [C++ 5.4] Dynamic Binding กับ Static Binding 2024, กรกฎาคม
Anonim

ความแตกต่างที่สำคัญ – Static Binding vs Dynamic Binding

ภาษาโปรแกรมเช่น Java และ C รองรับการเขียนโปรแกรมเชิงวัตถุ (OOP) อนุญาตให้สร้างซอฟต์แวร์โดยใช้วัตถุ มีอ็อบเจ็กต์มากมายในระบบซอฟต์แวร์หรือโปรแกรม วัตถุเหล่านี้มีคุณสมบัติและวิธีการ คุณสมบัติอธิบายลักษณะ เมธอดอธิบายการกระทำที่วัตถุสามารถทำได้ ข้อมูลถูกส่งผ่านวัตถุโดยใช้วิธีการ ค่าที่ต้องการจะถูกส่งผ่านการเรียกใช้เมธอดพร้อมพารามิเตอร์ การใช้งานเมธอดจริงอยู่ในนิยามเมธอด มีการเชื่อมโยงระหว่างการเรียกเมธอดและการกำหนดเมธอดเรียกว่าผูกพัน การผูกมัดมีสองประเภท เป็นการผูกแบบคงที่และการผูกแบบไดนามิก ความแตกต่างที่สำคัญระหว่างการโยงแบบคงที่และการโยงไดนามิกคือ ในการโยงแบบสแตติก การโยงจะได้รับการแก้ไข ณ เวลาคอมไพล์ ในขณะที่การโยงไดนามิกได้รับการแก้ไข ณ รันไทม์ ซึ่งเป็นเวลาจริงของการดำเนินการ บทความนี้กล่าวถึงความแตกต่างระหว่างกลไกการผูกทั้งสองนี้

Static Binding คืออะไร

การผูกคือการเชื่อมโยงระหว่างการเรียกเมธอดและการกำหนดเมธอด

ความแตกต่างระหว่าง Static Binding และ Dynamic Binding
ความแตกต่างระหว่าง Static Binding และ Dynamic Binding

รูปที่ 01: Static Binding และ Dynamic Binding

ดูโปรแกรมด้านล่างที่เขียนด้วยภาษาจาวา

สาธารณะ A{

วิธีโมฆะสาธารณะ1(){

System.out.println(“วิธีที่1”);

}

โมฆะสาธารณะวิธี2(){

System.out.println(“วิธีที่2”);

}

public static void main(สตริง args){

A obj=ใหม่ A();

obj.method1();

obj.method2();

}

}

ตามโปรแกรมด้านบน วัตถุประเภท A จะถูกสร้างขึ้น จากนั้นเมธอด 1 และเมธอด 2 จะถูกเรียก การระบุวิธีการที่ควรเรียกใช้สำหรับการดำเนินการเรียกว่าการผูกมัด คำสั่ง obj.method1() จะเรียก method1() และ obj.method2() จะเรียก method2() ลิงค์นี้มีผลผูกพัน

ในการผูกแบบคงที่ การผูกจะได้รับการแก้ไขในเวลารวบรวมโดยคอมไพเลอร์ เป็นที่รู้จักกันว่ามีผลผูกพันในช่วงต้น การผูกเกิดขึ้นก่อนที่โปรแกรมจะทำงานจริง การรวมแบบคงที่เกิดขึ้นในวิธีการโอเวอร์โหลด อ้างถึงโปรแกรมด้านล่างที่เขียนด้วยภาษาจาวา

การคำนวณโมฆะสาธารณะ{

ผลรวมโมฆะสาธารณะ(int x, int y){

System.out.println(“ผลรวมคือ “, x+y);

}

ผลรวมโมฆะสาธารณะ(ดับเบิ้ล x, ดับเบิ้ล y){

System.out.println(“ผลรวมคือ “, x+y);

}

public static void main(สตริง args){

การคำนวณ cal=การคำนวณใหม่();

cal.sum(2, 3);

cal.sum(5.1, 6.4);

}

}

ตามโปรแกรมด้านบน เมื่อส่งผ่านจำนวนเต็มสองตัว วิธีการที่มีจำนวนเต็มสองตัวจะถูกเรียกใช้ เมื่อส่งค่า double สองค่า วิธีการที่สอดคล้องกับค่า double สองค่าจะถูกเรียกใช้ กระบวนการผูกมัดนี้เกิดขึ้นในขณะที่คอมไพล์ คอมไพเลอร์รู้ว่าควรเรียกวิธี sum ด้วยค่าจำนวนเต็มสองค่าสำหรับ cal.sum(2, 3) สำหรับ cal (5.1, 6.4) จะเรียกวิธี sum ที่มีค่าสองเท่าสองค่า ข้อมูลที่จำเป็นทั้งหมดเป็นที่รู้จักก่อนรันไทม์ ดังนั้นจึงเป็นการเพิ่มประสิทธิภาพของโปรแกรมและความเร็วในการดำเนินการ

Dynamic Binding คืออะไร

ใน Dynamic Binding คอมไพเลอร์ไม่แก้ไขการโยง ณ เวลาคอมไพล์ การผูกเกิดขึ้นในขณะใช้งาน เป็นที่รู้จักกันว่ามีผลผูกพันล่าช้า Dynamic Binding เกิดขึ้นในวิธีการแทนที่ อ้างถึงโปรแกรมที่เขียนด้วยภาษาจาวา

คลาสสาธารณะ Shape(){

จับฉลากเป็นโมฆะสาธารณะ(){

System.out.println(“วาดรูปร่าง”);

}

}

วงคลาสสาธารณะ() ขยายรูปร่าง{

จับฉลากเป็นโมฆะสาธารณะ(){

System.out.println(“วาดวงกลม”);

}

}

ชั้นสาธารณะ สามเหลี่ยม() ขยายรูปร่าง{

จับฉลากเป็นโมฆะสาธารณะ(){

System.out.println(“วาดรูปสามเหลี่ยม”);

}

}

ทดสอบในชั้นเรียนสาธารณะ{

public static void main(สตริง args){

รูปร่าง s;

s=รูปร่างใหม่();

s.draw();

s=วงกลมใหม่();

s.draw();

s=สามเหลี่ยมใหม่();

s.draw();

}

}

ตามโปรแกรมข้างต้น class Shape มี method draw() Class Circle และ class Triangle ขยายคลาส Shape Class Circle และ class Triangle สามารถสืบทอดคุณลักษณะและวิธีการของ class Shape ดังนั้น class Shape จึงเป็น super class หรือ parent class Class Circle และ Class Triangle เป็นคลาสย่อยหรือคลาสที่ได้รับ คลาสเหล่านี้ยังมีเมธอด draw() พร้อมการใช้งานของตัวเอง ดังนั้นวิธีการ draw() ในซูเปอร์คลาสจึงถูกแทนที่

ในเมธอดหลัก จะเรียกอ็อบเจกต์ต่างๆ มีตัวแปรอ้างอิงประเภท Shape คือ s จากนั้นจะเรียกใช้เมธอดตามคลาสที่ระบุ ในเวลาคอมไพล์ คอมไพเลอร์จะอ้างอิงถึงวิธีการวาด super class เท่านั้นเมื่อการดำเนินการจริงเริ่มต้นขึ้น จะนำไปสู่การดำเนินการของวิธีการวาดแบบต่างๆ ขั้นแรก s จะชี้ไปที่วัตถุประเภท Shape ดังนั้น มันจะเรียกวิธีการวาดในคลาสรูปร่าง จากนั้น s จะชี้วัตถุประเภท Circle และจะเรียกใช้วิธีการวาดของคลาส Circle สุดท้าย s จะอ้างถึงวัตถุประเภท Triangle และจะเรียกใช้วิธีการวาดในคลาส Triangle แม้ว่าตัวแปรอ้างอิงจะเป็นประเภท Shape แต่การโยงก็ขึ้นอยู่กับประเภทของอ็อบเจ็กต์ แนวคิดนี้เรียกว่า Dynamic Binding ข้อมูลถูกจัดเตรียมไว้ ณ รันไทม์ ดังนั้นความเร็วในการดำเนินการจึงช้ากว่าเมื่อเปรียบเทียบกับการรวมแบบคงที่

ความคล้ายคลึงกันระหว่าง Static Binding และ Dynamic Binding คืออะไร

ทั้งสองสิ่งนี้เกี่ยวข้องกับความหลากหลายที่ทำให้วัตถุสามารถประพฤติตัวได้หลายวิธี

ความแตกต่างระหว่าง Static Binding และ Dynamic Binding คืออะไร

Static Binding กับ Dynamic Binding

Static Binding เป็นประเภทของการรวมที่รวบรวมข้อมูลที่จำเป็นทั้งหมดเพื่อเรียกใช้ฟังก์ชันระหว่างเวลาคอมไพล์ Dynamic Binding เป็นประเภทของการเชื่อมโยงที่รวบรวมข้อมูลที่จำเป็นทั้งหมดเพื่อเรียกใช้ฟังก์ชันระหว่างเวลาทำงาน
เวลาผูกมัด
Static Binding เกิดขึ้นที่เวลาคอมไพล์ การผูกแบบไดนามิกเกิดขึ้นที่รันไทม์
ฟังก์ชั่น
Static Binding ใช้ข้อมูลประเภทในการผูก Dynamic Binding ใช้วัตถุเพื่อแก้ไขการผูก
วัตถุจริง
การผูกแบบคงที่ไม่ได้ใช้วัตถุจริงสำหรับการผูก ไดนามิกโยง ใช้วัตถุจริงสำหรับการผูก
คำพ้องความหมาย
การผูกแบบคงที่เรียกอีกอย่างว่าการรวมต้น การผูกแบบไดนามิกเรียกอีกอย่างว่าการรวมสาย
การดำเนินการ
ความเร็วในการดำเนินการนั้นรวดเร็วในการเชื่อมโยงแบบคงที่ ความเร็วในการดำเนินการต่ำในการเชื่อมโยงแบบไดนามิก
ตัวอย่าง
การผูกแบบคงที่ถูกใช้ในวิธีการโอเวอร์โหลด การเชื่อมโยงแบบไดนามิกถูกใช้ในวิธีการแทนที่

สรุป – Static Binding vs Dynamic Binding

มีการเชื่อมโยงระหว่างการเรียกเมธอดและการกำหนดเมธอดเรียกว่าผูกพัน การผูกมีสองประเภทที่เรียกว่าการผูกแบบคงที่และการผูกแบบไดนามิก ความแตกต่างระหว่างการโยงแบบคงที่และการโยงไดนามิกคือ ในการโยงแบบคงที่ การโยงจะได้รับการแก้ไข ณ เวลาคอมไพล์ ในขณะที่การโยงไดนามิกจะได้รับการแก้ไข ณ รันไทม์ ซึ่งเป็นเวลาจริงของการดำเนินการ เนื่องจากมีการให้ข้อมูลที่จำเป็นก่อนรันไทม์ การผูกแบบคงที่จึงดำเนินการได้รวดเร็วเมื่อเทียบกับการเชื่อมโยงแบบไดนามิก

ดาวน์โหลดไฟล์ PDF ของ Static Binding vs Dynamic Binding

คุณสามารถดาวน์โหลดไฟล์ PDF ของบทความนี้และใช้เพื่อวัตถุประสงค์ออฟไลน์ตามหมายเหตุอ้างอิง โปรดดาวน์โหลดไฟล์ PDF ที่นี่: ความแตกต่างระหว่าง Static Binding และ Dynamic Binding

แนะนำ: