JavaRush /جاوا بلاگ /Random-UR /جاوا میں ابتدائی اور دیر سے بائنڈنگ کے درمیان فرق

جاوا میں ابتدائی اور دیر سے بائنڈنگ کے درمیان فرق

گروپ میں شائع ہوا۔
جاوا میں ابتدائی (جامد) اور دیر سے (متحرک) بائنڈنگ کے درمیان فرق کو سمجھنے کے لیے ، آپ کو پہلے سمجھنا چاہیے کہ بائنڈنگ کیا ہے ۔ لنک کرنے کا مطلب ہے لنک اور کوڈ کے درمیان تعلق ہے۔ مثال کے طور پر، ایک متغیر جس کا آپ حوالہ دیتے ہیں اس کوڈ کا پابند ہے جس میں اس کی تعریف کی گئی ہے۔ اسی طرح، جس طریقہ کو بلایا جا رہا ہے وہ کوڈ میں اس جگہ کا پابند ہے جہاں اس کی تعریف کی گئی ہے۔
جاوا میں ابتدائی اور دیر سے بائنڈنگ کے درمیان فرق - 1
جاوا زبان میں طریقہ بائنڈنگ کی دو قسمیں ہیں: ابتدائی بائنڈنگ (جسے جامد بھی کہا جاتا ہے) اور دیر سے بائنڈنگ (بالترتیب، متحرک) ۔ جاوا میں کسی طریقہ کو کال کرنے کا مطلب ہے کہ طریقہ مخصوص کوڈ کا پابند ہے، یا تو کمپائل ٹائم یا رن ٹائم پر، جب پروگرام چلتا ہے اور اشیاء بنتی ہیں۔ جیسا کہ نام سے پتہ چلتا ہے، جامد لنکنگ فطرت میں زیادہ مستحکم ہے کیونکہ یہ کمپائل کے وقت ہوتا ہے، یعنی کوڈ "جانتا ہے" کہ جاوا سورس کوڈ کو کلاس فائلوں میں مرتب کرنے کے بعد کس طریقہ کو کال کرنا ہے۔ اور چونکہ یہ پروگرام کے لائف سائیکل کے ابتدائی مرحلے کی طرف اشارہ کرتا ہے، اس لیے اسے ابتدائی بائنڈنگ بھی کہا جاتا ہے۔ دوسری طرف، جاوا ورچوئل مشین کے ذریعے پروگرام چلانے کے بعد، رن ٹائم پر متحرک لنکنگ ہوتی ہے۔ اس صورت میں، کس طریقہ کو کال کرنا ہے اس کا تعین مخصوص آبجیکٹ کے ذریعے کیا جاتا ہے، اس لیے کمپائل کے وقت معلومات دستیاب نہیں ہوتیں کیونکہ آبجیکٹ رن ٹائم پر بنتی ہیں۔ اور چونکہ یہ پروگرام کے لائف سائیکل میں دیر سے ہوتا ہے، اس لیے اسے جاوا میں لیٹ بائنڈنگ کہا جاتا ہے۔
لہذا، جاوا میں جامد اور متحرک بائنڈنگ کے درمیان بنیادی فرق یہ ہے کہ سابقہ ​​حوالہ متغیر کی قسم کی بنیاد پر، مرتب وقت پر، ابتدائی ہوتا ہے، اور مؤخر الذکر بعد میں، رن ٹائم پر، کنکریٹ اشیاء کا استعمال کرتے ہوئے ہوتا ہے۔
آئیے اس کو بہتر طور پر سمجھنے اور جاوا انٹرویوز میں پوچھے گئے اس انتہائی مقبول سوال کا جواب دینے کے لیے کچھ اور فرقوں کو دیکھتے ہیں۔

جاوا میں ابتدائی اور دیر سے بائنڈنگ

جاوا میں جامد اور متحرک بائنڈنگ کے درمیان بہت سے فرق ہیں، لیکن سب سے اہم یہ ہے کہ JVM انہیں کیسے استعمال کرتا ہے۔ کیا آپ نے کبھی سوچا ہے کہ JVM یہ فیصلہ کیسے کرتا ہے کہ جب ایک ہی نام کے دائرہ کار میں ایک سے زیادہ طریقہ موجود ہو تو کس طریقہ کو کال کرنا ہے؟ اگر آپ نے کبھی میتھڈ اوور لوڈنگ یا اوور رائڈنگ کا استعمال کیا ہے، تو آپ جانتے ہیں کہ جاوا میں آپ کے پاس ایک ہی نام کے متعدد طریقے ہوسکتے ہیں۔ جاوا کے معاملے میں، JVM مطلوبہ طریقہ کو منتخب کرنے کے لیے جامد اور متحرک بائنڈنگ دونوں کا استعمال کرتا ہے۔

جاوا میں جامد اور متحرک بائنڈنگ کی مثال

اس پروگرام میں، آپ دیکھیں گے کہ جامد بائنڈنگ کا استعمال کرتے ہوئے کمپائل کے وقت ورچوئل طریقوں کی بائنڈنگ نہیں ہوتی ہے، کیونکہ یہ سپر کلاس سے ایک طریقہ کو کال کرے گا، جیسا کہ جامد طریقوں کے ساتھ ہوتا ہے جو ابتدائی پابند ہوتے ہیں۔ اگر ذیلی طبقے سے ایک طریقہ کہا جاتا ہے تو، رن ٹائم کے وقت فنکشن کو باندھنے کے لیے ایک مخصوص آبجیکٹ کا استعمال کیا جاتا تھا، اور اسی لیے متحرک بائنڈنگ کا استعمال ورچوئل فنکشنز کو باندھنے کے لیے کیا جاتا ہے۔
public class Main {
  public static void main(String[] args) {

    // Пример статического и динамического связывания в Java
    Insurance current = new CarInsurance();

    // Динамическое связывание на основе an object
    int premium = current.premium();

    // Статическое связывание на основе класса
    String category = current.category();

    System.out.println("premium : " + premium);
    System.out.println("category : " + category);
  }
}

class Insurance{
  public static final int LOW = 100;

  public int premium(){
    return LOW;
  }

  public static String category(){
    return "Insurance";
  }

}

class CarInsurance extends Insurance{
  public static final int HIGH = 200;

  public int premium(){
    return HIGH;
  }

  public static String category(){
    return "Car Insurance";
  }

}
Результаты выполнения:

premium : 200
category : Insurance
جیسا کہ آپ دیکھ سکتے ہیں، ایک میتھڈ کال کے premium()نتیجے میں ذیلی طبقے سے ایک طریقہ کار پر عمل درآمد ہوا، جب کہ ایک میتھڈ کال کے category()نتیجے میں ایک سپر کلاس طریقہ پر عمل درآمد ہوا۔ اس کی وجہ یہ ہے کہ premium()- ایک ورچوئل طریقہ ہے، جسے لیٹ بائنڈنگ کا استعمال کرتے ہوئے حل کیا جاتا ہے، جبکہ category()- ایک جامد طریقہ ہے، جسے کلاس کے نام کے مطابق کمپائل ٹائم سٹیٹک بائنڈنگ کا استعمال کرتے ہوئے حل کیا جاتا ہے۔
جاوا کے بارے میں پڑھنے میں دلچسپی ہے؟ جاوا ڈیولپر گروپ میں شامل ہوں !

جاوا میں ابتدائی اور دیر سے بائنڈنگ کے درمیان فرق

اب جب کہ آپ کے پاس یہ ہینڈل ہے کہ جاوا کس طرح میتھڈ کالز کو باندھتا ہے اور کس طرح جامد اور متحرک بائنڈنگ کام کرتا ہے، آئیے جاوا میں ابتدائی اور دیر سے بائنڈنگ کے درمیان اہم فرق کو دوبارہ دیکھیں:
  1. جامد لنکنگ کمپائل کے وقت ہوتی ہے، جبکہ ڈائنامک لنکنگ رن ٹائم پر ہوتی ہے۔

  2. چونکہ جامد لنکنگ پروگرام کے لائف سائیکل میں ابتدائی طور پر ہوتی ہے، اسے ابتدائی بائنڈنگ کہا جاتا ہے۔ اسی طرح، ڈائنامک بائنڈنگ کو لیٹ بائنڈنگ بھی کہا جاتا ہے کیونکہ یہ پروگرام کے عمل میں بعد میں ہوتا ہے۔

  3. جامد بائنڈنگ کا استعمال جاوا زبان میں اوور لوڈ شدہ طریقوں کو حل کرنے کے لیے کیا جاتا ہے جبکہ جاوا زبان میں اوور رائیڈڈ طریقوں کو حل کرنے کے لیے ڈائنامک بائنڈنگ کا استعمال کیا جاتا ہے۔

  4. اسی طرح، نجی، جامد، اور ٹرمینل طریقوں کو جامد بائنڈنگ کا استعمال کرتے ہوئے حل کیا جاتا ہے کیونکہ ان کو اوور رائڈ نہیں کیا جا سکتا، جبکہ تمام ورچوئل طریقے ڈائنامک بائنڈنگ کا استعمال کرتے ہوئے حل کیے جاتے ہیں۔

  5. جامد بائنڈنگ کے معاملے میں، یہ ٹھوس اشیاء نہیں ہیں جو استعمال کی جاتی ہیں، لیکن معلومات ٹائپ کریں، یعنی حوالہ متغیر کی قسم مطلوبہ طریقہ کو دریافت کرنے کے لیے استعمال کیا جاتا ہے۔ دوسری طرف، متحرک بائنڈنگ جاوا میں مطلوبہ طریقہ تلاش کرنے کے لیے ایک مخصوص شے کا استعمال کرتی ہے۔
یہاں جاوا میں جامد اور متحرک بائنڈنگ کے تصورات پر مبنی ایک اچھی مشق ہے۔ کیا آپ اس سوال کا جواب دے سکتے ہیں: "جب مندرجہ ذیل پروگرام کو عمل میں لایا جائے گا تو آؤٹ پٹ کیا ہوگا؟"
جاوا میں ابتدائی اور دیر سے بائنڈنگ کے درمیان فرق - 2
اس پروگرام کی پیداوار کیا ہوگی؟ Collection، Setیا HashSet؟ بس ہم آپ کو جاوا میں ابتدائی (جامد) اور دیر سے (متحرک) بائنڈنگ کے درمیان فرق کے بارے میں بتانا چاہتے ہیں۔ یہ جاوا فون انٹرویو کے بہترین سوالات میں سے ایک ہے کیونکہ یہ امیدوار کے علم کی گہرائی کو جانچنے کے لیے کافی مواقع فراہم کرتا ہے۔ ہمیشہ یاد رکھیں کہ نجی ، جامد ، اور حتمی طریقے جامد لنکنگ کا استعمال کرتے ہوئے پابند ہیں ، جب کہ ورچوئل طریقے متحرک لنکنگ کا استعمال کرتے ہوئے پابند ہیں ۔ اسی طرح، جامد بائنڈنگ کی بہترین مثال طریقہ اوور لوڈنگ ہے، جبکہ اوور رائیڈنگ متحرک ہے۔ ذریعہ
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION