آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش Java – (اتصال دیرهنگام یا زمان اجرای کد) Dynamic binding در Java

دوره های مرتبط با این مقاله

آموزش Java – (اتصال دیرهنگام یا زمان اجرای کد) Dynamic binding در Java

در این مبحث به شرح static binding و dynamic binding که تشخیص، فراخوانی و اتصال کد مربوطه در زمان کامپایل (زودهنگام) و اجرا (دیرهنگام) هست، خواهیم پرداخت.

آموزش Java

متصل کردن اسم و فراخوانی متد به بدنه و پیاده سازی آن تحت عنوان binding/اتصال کد شناخته می شود.

دو نوع binding وجود دارد:

  1. static binding یا اتصال زودهنگام و زمان کامپایل کد
  2. dynamic binding یا اتصال دیرهنگام و زمان اجرای کد

درک مفهوم نوع داده ای/Type

ابتدا به شرح مفهوم نوع داده ای instance/نمونه خواهیم پرداخت.

نوع داده ای متغیرها

هر متغیری یک نوع دارد. این نوع می تواند اولیه همچون short و long باشد یا از نوع غیر اولیه (non-primitive) نظیر آرایه، آّبجکت و غیره باشد.

int data=30;  

در خط فوق می بینید که نوع داده ای متغیر بر روی int تنظیم شده است.

reference variable یا متغیر از جنس کلاس/اشاره گر به کلاس

class Dog{  
 public static void main(String args[]){  
  Dog d1;//Here d1 is a type of Dog  
 }  
}  

در این قطعه کد، d1 یک متغیر از جنس کلاس Dog می باشد.

نوع آّبجکت

یک آّبجکت، علاوه بر اینکه نمونه ای از یک کلاس خاص است، نمونه ای از جنس کلاس پدر خود (superclass) نیز محسوب می شود.

class Animal{}  
class Dog extends Animal{  
 public static void main(String args[]){  
  Dog d1=new Dog();  
 }  
}  

در قطعه کد بالا، علاوه بر اینکه d1 نمونه ای از کلاس Dog (آبجکتی از جنس کلاس Dog) می باشد، یک آبجکت از نوع کلاس Animal نیز محسوب می شود.

اتصال زودهنگام و زمان کامپایل کد/static binding

زمانی که نوع آبجکت در زمان کامپایل برنامه مشخص می شود، به آن static binding یا اتصال زودهنگام کد گویند.

در صورت وجود هر گونه متد با سطح دسترسی private، final و static در کلاس، static binding رخ می دهد.

مثال کاربردی از static binding

class Dog{  
 private void eat(){System.out.println("dog is eating...");}  
 public static void main(String args[]){  
  Dog d1=new Dog();  
  d1.eat();  
 }  
}  

اتصال دیرهنگام و زمان اجرای کد/Dynamic binding

زمانی که نوع آبجکت در زمان اجرای برنامه مشخص می شود (توسط کامپایلر)، به آن dynamic binding گویند.

مثال کاربردی از اتصال کد در زمان اجرا (Dynamic binding)

class Animal{  
 void eat(){System.out.println("animal is eating...");}  
} 
class Dog extends Animal{  
 void eat(){System.out.println("dog is eating...");}   
 public static void main(String args[]){  
  Animal a=new Dog();  
  a.eat();  
 }  
}  

خروجی:

dog is eating...

در مثال بالا همان طور که می بینید، نوع آبجکت برای کامپایلر مشخص نیست چرا که متغیر a که آبجکتی از کلاس Dog را در خود نگه داشته، از جنس کلاس Animal می باشد. به عبارت دیگر نمونه ی کلاس Dog همچنین آبجکتی از جنس کلاس Animal می باشد و به همین دلیل، کامپایلر نمی تواند نوع دقیق آن را تشخیص دهد بلکه صرفا نوع پایه (base type) آن را در زمان کامپایل کد، می شناسد.

  • 1332
  •    804
  • تاریخ ارسال :   1396/07/06

دانلود PDF دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .