جاوا میں ڈائنامک بائنڈنگ کا استعمال کیسے کریں؟

Jawa My Aynamk Bayn Ng Ka Ast Mal Kys Kry



' متحرک پابند ” پولیمورفک رویے کی اجازت دیتا ہے، جہاں کسی شے کے طریقہ کار کی درخواست کا تعین رن ٹائم پر حوالہ کی قسم کی بجائے آبجیکٹ کی اصل قسم کی بنیاد پر کیا جاتا ہے۔ یہ ذیلی کلاسوں کو اوور رائڈ کرنے اور پیرنٹ کلاس میں بیان کردہ طریقوں پر عمل درآمد فراہم کرنے کی اجازت دے کر کوڈ کے دوبارہ استعمال کو فروغ دیتا ہے۔

یہ بلاگ جاوا میں ڈائنامک بائنڈنگ کے استعمال اور نفاذ کو ظاہر کرتا ہے۔

جاوا میں متحرک بائنڈنگ کا استعمال کیسے کریں؟

ڈائنامک بائنڈنگ اشیاء کے درمیان ڈھیلے جوڑے کو قابل بناتی ہے۔ یہ نئے ذیلی طبقات کو شامل کرکے فعالیت کی آسانی سے توسیع میں مدد کرتا ہے جو موجودہ کوڈ میں ترمیم کیے بغیر طریقوں کو اوور رائڈ کرتے ہیں۔ رن ٹائم ڈسپیچنگ، ایونٹ ہینڈلنگ، یا پلگ ان سسٹمز کے لیے ڈائنامک بائنڈنگ کا وسیع پیمانے پر استعمال کیا جاتا ہے۔





آئیے تفصیلی وضاحت کے لیے چند مثالیں دیکھتے ہیں:



مثال 1: ڈائنامک بائنڈنگ کو لاگو کرنا



ڈائنامک بائنڈنگ کا استعمال کرتے ہوئے، پروگرامرز صارفین کو حسب ضرورت ایپلی کیشنز بنانے کے لیے پہلے سے طے شدہ طرز عمل کو اپنی مرضی کے مطابق بنانے اور اوور رائیڈ کرنے کی اجازت دے سکتے ہیں۔ عملی نفاذ کے لیے، آئیے ایک مثال کے ذریعے چلتے ہیں:





java.util.Arrays درآمد کریں؛
java.util.HashSet درآمد کریں؛
java.util.List درآمد کریں؛
java.util.Set درآمد کریں؛

عوامی کلاس DynBind {
عوامی جامد باطل مین ( تار [ ] args ) {
گیمنگ گیم ٹائپ 1 = نیا کرکٹ ( ) ;
گیمنگ گیم ٹائپ 2 = نئی کالوف ڈیوٹی ( ) ;
gameType1.gameType ( ) ;
gameType2.gameType ( ) ;
}
}
کلاس گیمنگ {
عوامی باطل گیم کی قسم ( ) {
System.out.println ( 'جسمانی یا ورچوئل گیمز' ) ;
}
}
کلاس کرکٹ گیمنگ میں توسیع کرتا ہے۔ {
@ اوور رائڈ
عوامی باطل گیم کی قسم ( ) {
System.out.println ( 'کرکٹ ایک جسمانی کھیل ہے' ) ;
}
}
کلاس CallofDuty گیمنگ میں توسیع کرتی ہے۔ {
@ اوور رائڈ
عوامی باطل گیم کی قسم ( ) {
System.out.println ( 'CallofDuty ایک ورچوئل گیم ہے' ) ;
}
}

مندرجہ بالا کوڈ کی وضاحت:



  • سب سے پہلے، کلاس ' DynBind 'بنایا جاتا ہے، اور قسم کی دو اشیاء' گیمنگ ' قرار دیا گیا ہے۔
  • اگلا، ان اشیاء کو نئے ' کے ساتھ شروع کیا جاتا ہے کرکٹ 'اور' کال آف ڈیوٹی اشیاء، یہ ابتداء متحرک بائنڈنگ کو ظاہر کرتی ہے۔ حوالہ کی قسم ہے ' گیمنگ 'لیکن اصل آبجیکٹ کی اقسام ہیں' کرکٹ 'اور' کال آف ڈیوٹی '، بالترتیب.
  • اب، ان اشیاء کو استعمال کیا جاتا ہے ' گیم کی قسم() بچوں کی کلاسوں میں فنکشن کو اوور رائیڈ کر کے فنکشنز۔
  • پھر والدین ' گیمنگ 'کلاس کا اعلان کیا جاتا ہے جو تخلیق کرتا ہے اور شروع کرتا ہے' گیم کی قسم() فنکشن، جو ایک ڈمی ٹیکسٹ میسج پرنٹ کرتا ہے۔
  • اس کے بعد، دو چائلڈ کلاسز نام کے ساتھ بنائے جاتے ہیں ' کرکٹ 'اور' کال آف ڈیوٹی ' یہ کلاسز والدین سے وراثت میں ملتی ہیں ' گیمنگ 'کلاس.
  • اس کے بعد، ' @Override 'تشریح کو والدین کو اوور رائیڈ کرنے کے لیے استعمال کیا جاتا ہے' گیمنگ 'طبقاتی طریقوں کا نام' گیم کی قسم() '
  • آخر میں، دونوں چائلڈ کلاس اوور رائڈ طریقوں میں ایک مختلف ڈمی پیغام ظاہر ہوتا ہے۔

پھانسی کے مرحلے کے اختتام کے بعد:

آؤٹ پٹ دکھاتا ہے کہ چائلڈ کلاسز کے ڈمی پیغامات ڈائنامک بائنڈنگ کا استعمال کرتے ہوئے کنسول پر دکھائے جاتے ہیں۔

مثال 2: ملٹی لیول وراثت کو نافذ کرنا

کثیر سطحی وراثت کی تخلیق کے لیے ڈائنامک بائنڈنگ کو بھی لاگو کیا جا سکتا ہے۔ ایک ہی پروگرام کے دو کوڈ بلاکس جیسا کہ ذیل میں دکھایا گیا ہے:

کلاس گیمنگ {
عوامی باطل گیم کی قسم ( ) {
System.out.println ( 'جسمانی یا ورچوئل گیمز' ) ;
}
}
کلاس کرکٹ گیمنگ میں توسیع کرتا ہے۔ {
@ اوور رائڈ
عوامی باطل گیم کی قسم ( ) {
System.out.println ( 'کرکٹ ایک جسمانی کھیل ہے' ) ;
}
عوامی باطل پلیئنگ فارمیٹ ( ) {
System.out.println ( 'کرکٹ کے کھیلنے کے مختلف فارمیٹس ہوتے ہیں' ) ;
}
}
کلاس CallofDuty گیمنگ میں توسیع کرتی ہے۔ {
@ اوور رائڈ
عوامی باطل گیم کی قسم ( ) {
System.out.println ( 'CallofDuty ایک ورچوئل گیم ہے' ) ;
}
عوامی باطل گیم موڈ ( ) {
System.out.println ( 'CallofDuty میں متعدد گیم موڈز ہیں' ) ;
}
}
کلاس کرکٹ گیم نے کرکٹ کو بڑھایا {
عوامی باطل گیم موڈ ( ) {
System.out.println ( 'کرکٹ میں سنگل گیم موڈ ہے' ) ;
}
}
کلاس CallofDutyGame نے CallofDuty میں توسیع کی۔ {
}

مندرجہ بالا کوڈ کی وضاحت:

  • سب سے پہلے، والدین ' گیمنگ 'کلاس بنائی گئی ہے اور اس میں شامل ہے' گیم کی قسم() ' فنکشن جس میں ایک ڈمی پیغام ہوتا ہے۔
  • اگلا، دو بچوں کی کلاسوں کا نام ' کرکٹ 'اور' کال آف ڈیوٹی 'بنائے جاتے ہیں، دونوں پیرنٹ کلاس فنکشن کو زیر کرتے ہیں جس کا نام ہے' گیم کی قسم() '
  • ان کلاسوں میں ایک اضافی فنکشن ہوتا ہے جس کا نام ' پلے فارمیٹ() 'اور' کھیل کی قسم() بالترتیب افعال۔
  • پھر، ایک ملٹی لیول چائلڈ بنائیں جس کا نام ' کرکٹ گیم 'جو بچے کے ذریعہ بڑھایا جاتا ہے' کرکٹ 'کلاس. اس میں ' کھیل کی قسم() 'فنکشن جو اس کے والدین کے ذریعہ اوور رائیڈ کیا جاتا ہے' کرکٹ 'کلاس.
  • اس کے بعد، ' کال آف ڈیوٹی گیم 'کلاس کو بچے کے طور پر بنایا گیا ہے' کال آف ڈیوٹی 'کلاس. یہ ایک کثیر سطحی وراثت تخلیق کرتا ہے اور متحرک بائنڈنگ کی فعالیت کو فعال کرتا ہے۔

اب، داخل کریں ' مرکزی() طریقہ:

عوامی کلاس DynBind {
عوامی جامد باطل مین ( تار [ ] args ) {
کال آف ڈیوٹی گیم codg = نئی کالوف ڈیوٹی گیم ( ) ;
codg.gameType ( ) ;
codg.gameMode ( ) ;

کرکٹ گیم cricg = نیا کرکٹ گیم ( ) ;
cricg.gameType ( ) ;
cricg.playingFormat ( ) ;
cricg.gameMode ( ) ;
}
}

مندرجہ بالا کوڈ کی وضاحت:

  • سب سے پہلے، ایک اعتراض ' کال آف ڈیوٹی گیم 'کلاس بنائی گئی ہے جو اس کی پیرنٹ کلاسز کے افعال کو کال کرتی ہے۔
  • اسی طرح، ' کرکٹ گیم ' آبجیکٹ کا اعلان کیا جاتا ہے جو اس کے پیرنٹ کلاس فنکشن کو کہتے ہیں جو درجہ بندی میں ملٹی لیول پر دستیاب ہے۔

پھانسی کے مرحلے کے اختتام کے بعد:

آؤٹ پٹ سے پتہ چلتا ہے کہ جاوا میں ڈائنامک بائنڈنگ کا استعمال کرتے ہوئے ملٹی لیول وراثت بنائی گئی ہے۔

نتیجہ

جاوا میں، ' متحرک پابند ” پولیمورفزم، کوڈ کی دوبارہ استعمال، لچک، اور توسیع پذیری جیسے فوائد پیش کرتا ہے۔ یہ وراثت، طریقہ کار کو اوور رائیڈنگ، اور اپکاسٹنگ کے اصولوں پر عمل کرتے ہوئے لاگو کیا جاتا ہے۔ ڈائنامک بائنڈنگ رن ٹائم فنکشنز کو بھی قابل بناتی ہے اور OOPs تصور میں لچکدار اور پولیمورفک رویے کو بڑھاتی ہے۔ یہ سب جاوا میں متحرک بائنڈنگ کے استعمال اور نفاذ کے بارے میں ہے۔