JavaRush /جاوا بلاگ /Random-UR /جاوا ڈویلپر کے انٹرویوز سے سوالات اور جوابات کا تجزیہ۔ حص...

جاوا ڈویلپر کے انٹرویوز سے سوالات اور جوابات کا تجزیہ۔ حصہ 4

گروپ میں شائع ہوا۔
سب کو ہیلو، آج میں جاوا ڈویلپر کے لیے 250+ انٹرویو کے سوالات کا تجزیہ کرتا رہتا ہوں۔ جاوا ڈویلپر کے انٹرویوز سے سوالات اور جوابات کا تجزیہ۔  حصہ 4 - 1تجزیہ کے پچھلے حصے: پہلا ، دوسرا ، تیسرا ۔ تو آئیے جاری رکھیں۔

29. کیا کنسٹرکٹر میں واپسی کا استعمال ممکن ہے؟

آپ کر سکتے ہیں، لیکن واپسی کے دائیں طرف واپسی کی قیمت کے بغیر ۔ یعنی آپ واپسی کا استعمال کر سکتے ہیں۔ کنسٹرکٹر میں حساب کے دوران ایک معاون تعمیر کے طور پر تاکہ مزید کوڈ پر عمل درآمد کو فوری طور پر ختم کیا جا سکے اور آبجیکٹ کی ابتدا کو مکمل کیا جا سکے۔ مثال کے طور پر، ہمارے پاس ایک کلاس Cat ہے ، اور اگر Cat بے گھر ہے - isHomeless = true ، ہمیں ابتداء کو ختم کرنے کی ضرورت ہے اور دوسرے شعبوں کو نہیں بھرنا ہوگا (آخر کار، وہ ہمارے لیے نامعلوم ہیں، کیونکہ بلی بے گھر ہے):
public Cat(int age, String name, boolean isHomeless) {
   if (isHomeless){
       this.isHomeless = isHomeless;
       return;
   }
   this.isHomeless = isHomeless;
   this.age = age;
   this.name = name;
}
لیکن جب بات مخصوص اقدار کی ہو تو، کنسٹرکٹر کسی قدر واپس کرنے کے لیے واپسی کا استعمال نہیں کر سکتا کیونکہ:
  • کنسٹرکٹر کا اعلان کرتے وقت آپ کے پاس واپسی کی قسم سے ملتی جلتی کوئی چیز نہیں ہوگی۔
  • عام طور پر، کنسٹرکٹر کو instantiation کے دوران واضح طور پر کہا جاتا ہے۔
  • کنسٹرکٹر کوئی طریقہ نہیں ہے: یہ ایک علیحدہ طریقہ کار ہے جس کا واحد مقصد مثال کے متغیرات کو شروع کرنا ہے، اور نیا آپریٹر ایک آبجیکٹ بنانے کا ذمہ دار ہے ۔
جاوا ڈویلپر کے انٹرویوز سے سوالات اور جوابات کا تجزیہ۔  حصہ 4 - 2

30. کیا کنسٹرکٹر سے استثنیٰ دینا ممکن ہے؟

کنسٹرکٹرز مستثنیات سے بالکل اسی طرح نمٹتے ہیں جیسے طریقوں سے۔ اور اگر طریقے ہمیں طریقہ ہیڈر میں تھرو <ExceptionType> لکھ کر استثنیٰ پھینکنے کی اجازت دیتے ہیں ، تو کنسٹرکٹر ہمیں ایسا کرنے کی اجازت دیتا ہے، اور وراثت کے کنسٹرکٹر کی وراثت اور وضاحت کرتے وقت، ہم استثناء کی قسم کو بڑھا سکتے ہیں۔ مثال کے طور پر، IOException -> Exception (لیکن اس کے برعکس نہیں)۔ ایک کنسٹرکٹر کی طرف سے استثناء پھینکنے کی مثال کے طور پر، آئیے Cat class کو لیتے ہیں ۔ ہم کہتے ہیں کہ اسے بناتے وقت ہم کنسول سے نام اور عمر درج کرنا چاہتے ہیں:
public Cat() throws IOException {
   BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
   this.name = reader.readLine();
   this.age = Integer.parseInt(reader.readLine());
}
چونکہ reader.readLine() ایک IOException پھینکتا ہے، اس لیے ہم اسے ہیڈر میں ممکنہ پھینکے گئے استثناء کے طور پر بتاتے ہیں۔

31. کلاس ہیڈر کن عناصر پر مشتمل ہے؟ ایک مثال لکھیں۔

کلاس ہیڈر بنانے والے عناصر کے بارے میں بات کرتے ہوئے، آئیے ایک چھوٹا سا خاکہ دیکھتے ہیں:
  • لازمی اجزاء بریکٹ میں ہوں گے <>
  • اختیاری - {} میں
{کلاس رسائی موڈیفائر}کلاس سٹیٹیسٹی}کلاس فائنلٹی}کلاس ایبسٹریکشن} <کلاس کا نام>{والدین کی کلاس سے وراثت} {انٹرفیس کا نفاذ} تو، ہمارے پاس کیا ہے: {class access modifier} - صرف پبلک موڈیفائر اور غائب رسائی موڈیفائر، یعنی ڈیفالٹ، کلاس کے لیے دستیاب ہیں ۔ {class static} - static ایک ترمیم کنندہ ہے جو اس بات کی نشاندہی کرتا ہے کہ یہ کلاس جامد ہے، صرف اندرونی کلاسز (دوسری کلاسوں کے اندر کی کلاسز) پر لاگو ہوتی ہے۔ {class finality} - جیسا کہ ہمیں یاد ہے، یہ حتمی ترمیم کنندہ ہے ، جس کی موجودگی میں کلاس ناقابل وراثت بن جاتی ہے (مثال کے طور پر باکس - String{class abstraction} - modifier - abstract ، جو اس بات کی نشاندہی کرتا ہے کہ اس کلاس میں غیر لاگو طریقے ہو سکتے ہیں۔ یہ ترمیم کنندہ حتمی موڈیفائر سے متصادم ہے ، یعنی ان میں سے صرف ایک ہی کلاس ہیڈر میں ہوسکتا ہے، کیونکہ خلاصہ موڈیفائر کا مطلب ہے کہ دی گئی کلاس کو وراثت میں مل جائے گا اور اس کے خلاصہ حصوں کو نافذ کیا جائے گا۔ اور فائنل اشارہ کرتا ہے کہ یہ کلاس کا آخری (حتمی) ورژن ہے، اور اسے وراثت میں نہیں مل سکتا۔ دراصل، ایک ہی وقت میں دونوں ترمیم کاروں کا استعمال مضحکہ خیز ہوگا، اور مرتب کرنے والا ہمیں ایسا کرنے کی اجازت نہیں دے گا۔ <class> ایک مطلوبہ کلیدی لفظ ہے جو کلاس ڈیکلریشن کی نشاندہی کرتا ہے۔ <class name> ایک سادہ کلاس کا نام ہے، جو ایک مخصوص جاوا کلاس کا شناخت کنندہ ہے۔ مکمل طور پر اہل کلاس کا نام مکمل طور پر اہل پیکیج کے نام پر مشتمل ہوتا ہے + ۔ + سادہ کلاس کا نام۔ {والدین طبقے سے وراثت} - توسیعی کلیدی لفظ کا استعمال کرتے ہوئے پیرنٹ کلاس (اگر کوئی ہے) کی وضاحت کرنا ۔ مثال کے طور پر، .. توسیع کرتا ہے ParentClass ۔ {انٹرفیس کا نفاذ} - ان انٹرفیس کی وضاحت کرنا جو یہ کلاس امپلی کی ورڈ استعمال کرتے ہوئے (اگر کوئی ہے) لاگو کرتی ہے ۔ مثال کے طور پر: ... فرسٹ انٹرفیس، سیکنڈ انٹرفیس کو لاگو کرتا ہے ... ٹھیک ہے، کلاس ہیڈر کی مثال کے طور پر، شیر کلاس کے ہیڈر پر غور کریں ، جو Cat سے وراثت میں ملتا ہے اور WildAnimal انٹرفیس کو نافذ کرتا ہے :
public final class Lion extends Cat implements WildAnimal
جاوا ڈویلپر کے انٹرویوز سے سوالات اور جوابات کا تجزیہ۔  حصہ 4 - 3

32. طریقہ ہیڈر کن عناصر پر مشتمل ہے؟ ایک مثال لکھیں۔

ایک بار پھر، ان عناصر کو دیکھتے ہوئے جو طریقہ کار کا ہیڈر بناتے ہیں، ایک چھوٹے سے خاکے پر غور کریں جہاں:
  • لازمی اجزاء بریکٹ میں ہیں <>
  • اختیاری - {} میں
{رسائی موڈیفائر} طریقہ جامد} طریقہ تجرید} طریقہ فائنل} { مطابقت پذیری ترمیم} { مقامی موڈیفائر < واپسی قدر> طریقہ کا نام> <(> {طریقہ کے دلائل} <)>{ پھینکے گئے استثنیٰ} { رسائی موڈیفائر } - تمام رسائی میں ترمیم کرنے والے طریقہ کار کے لیے دستیاب ہیں: عوامی ، محفوظ ، ڈیفالٹ ، نجی ۔ {طریقہ جامد} - جامد ایک ترمیم کنندہ ہے جو اس بات کی نشاندہی کرتا ہے کہ یہ طریقہ جامد ہے، یعنی یہ کسی شے سے نہیں، بلکہ کلاس سے منسلک ہے۔ {method abstraction} خلاصہ موڈیفائر ہے ، جو اس بات کی نشاندہی کرتا ہے کہ طریقہ کار کا کوئی نفاذ (باڈی) نہیں ہے۔ درست آپریشن کے لیے، آپ کو اس کلاس کے لیے ایک خلاصہ موڈیفائر کی بھی ضرورت ہے جس میں طریقہ فراہم کیا گیا ہے۔ جیسا کہ کلاس ہیڈر میں ہے، یہ ترمیم کنندہ حتمی موڈیفائر سے متصادم ہے ، لیکن اس کے علاوہ، یہ static modifier سے بھی متصادم ہے ، کیونکہ ایک تجریدی طریقہ کا مطلب یہ ہے کہ نزول میں طریقہ کو اوور رائیڈ کیا جائے، اور جامد طریقوں کو اوور رائیڈ نہیں کیا جاتا ہے۔ {طریقہ کی حتمیت} - حتمی - ایک ترمیم کنندہ جو یہ بتاتا ہے کہ اس طریقہ کو اوور رائڈ نہیں کیا جا سکتا۔ { synchronization modifier } - synchronized - ایک ترمیم کنندہ جس کا مطلب ہے کہ یہ طریقہ مختلف دھاگوں سے اس تک بیک وقت رسائی سے محفوظ ہے۔ اگر طریقہ جامد نہیں ہے، تو یہ آبجیکٹ کے اس mutex پر بند ہوجاتا ہے۔ اگر طریقہ جامد ہے، تو یہ موجودہ کلاس کے mutex پر بند ہوجاتا ہے۔ {native modifier} - مقامی - یہ ترمیم کرنے والا اشارہ کرتا ہے کہ طریقہ ایک مختلف پروگرامنگ زبان میں لکھا گیا ہے۔ <return value> قدر کی وہ قسم ہے جو طریقہ کو واپس کرنی چاہیے۔ اگر اسے کچھ واپس نہیں کرنا چاہئے تو، باطل ۔ <method name> طریقہ کا نام ہے، سسٹم میں اس کا شناخت کنندہ۔ {میتھڈ آرگومنٹس} وہ آرگیومینٹس (پیرامیٹر) ہیں جو طریقہ اختیار کرتا ہے: وہ اس کی فعالیت کو نافذ کرنے کے لیے ضروری ہیں۔ {throwable exceptions} - throwsExceptionType - چیک شدہ مستثنیات کی ایک فہرست جسے یہ طریقہ پھینک سکتا ہے۔ اور میتھڈ ہیڈر کی مثال کے طور پر، میں یہ دوں گا:
public static void main(String[] args) throws IOException

33۔ ڈیسنڈنٹ آبجیکٹ میں ڈیفالٹ کنسٹرکٹر بنائیں اگر اس کی وضاحت بیس آبجیکٹ میں نہیں کی گئی ہے (لیکن ایک اور کنسٹرکٹر کی تعریف کی گئی ہے)

میں خود سوال کو پوری طرح سے نہیں سمجھتا ہوں، لیکن شاید اس کا مطلب یہ ہے کہ، مثال کے طور پر، والدین میں ہمارے پاس کچھ کسٹم کنسٹرکٹر ہے:
public Cat(int age, String name) {
   this.age = age;
   this.name = name;
}
لہذا، آبائی طبقے میں، ہمیں یقینی طور پر ایک کنسٹرکٹر کی وضاحت کرنے کی ضرورت ہے جو پیرنٹ کنسٹرکٹر کو (کال) کرے گا:
public  class Lion extends Cat {

   public Lion(int age, String name) {
       super(age, name);
   }
}
جاوا ڈویلپر کے انٹرویوز سے سوالات اور جوابات کا تجزیہ۔  حصہ 4 - 4

34. یہ کلیدی لفظ کب استعمال ہوتا ہے؟

جاوا میں، اس کے دو مختلف معنی ہیں۔ 1. موجودہ آبجیکٹ کے حوالے کے طور پر، جیسے this.age = 9 ۔ یعنی، اس سے مراد وہ شے ہے جس پر اسے بلایا گیا تھا اور جس کو استعمال کرنے والا کوڈ اس سے مراد ہے ۔ بنیادی کام کوڈ پڑھنے کی اہلیت کو بڑھانا اور ابہام سے بچنا ہے۔ مثال کے طور پر، اگر داخلی کلاس فیلڈ کا نام اور طریقہ دلیل ایک جیسے ہیں:
public void setName(String name) {
   this.name = name;
}
یعنی، this.name آبجیکٹ کا ایک فیلڈ ہے نام ایک طریقہ دلیل ہے۔ اس حوالہ کو جامد طریقوں میں استعمال نہیں کیا جاسکتا۔ 2. اسے کنسٹرکٹر میں میتھڈ کال کی شکل میں استعمال کیا جا سکتا ہے، جیسے this(value) ۔ اس صورت میں، یہ اسی کلاس کے دوسرے کنسٹرکٹر کو کال ہوگی۔ مختصراً، کوئی چیز بناتے وقت آپ ایک ساتھ دو کنسٹرکٹرز کو کال کر سکتے ہیں۔
public Cat(int age, String name) {
   this(name);
   this.age = age;
}

public Cat(String name) {
   this.name = name;
}
جب ایک کیٹ آبجیکٹ بنایا جاتا ہے اور پہلے کنسٹرکٹر کو بلایا جاتا ہے، تو آبجیکٹ کے دونوں فیلڈز کو بلایا جائے گا اور کامیابی کے ساتھ شروع کیا جائے گا۔ چند باریکیاں ہیں:
  1. یہ () صرف کنسٹرکٹر میں کام کرتا ہے۔
  2. دوسرے کنسٹرکٹر کا حوالہ کنسٹرکٹر بلاک (باڈی) کی پہلی لائن میں ہونا چاہیے۔ لہٰذا، ایک کنسٹرکٹر میں دیے گئے کلاس کے ایک سے زیادہ (دوسرے) کنسٹرکٹر کو نہیں بلایا جا سکتا۔
جاوا ڈویلپر کے انٹرویوز سے سوالات اور جوابات کا تجزیہ۔  حصہ 4 - 5مزید مثالیں اس مضمون میں ہیں ۔

35. انیشیلائزر کیا ہے؟

جہاں تک میں سمجھتا ہوں، اس سوال میں ہم عام اور شماریاتی ابتدائی بلاکس کے بارے میں بات کر رہے ہیں۔ سب سے پہلے، آئیے یاد رکھیں کہ ابتداء کیا ہے۔ ابتداء تخلیق، ایکٹیویشن، کام کی تیاری، پیرامیٹرز کا تعین ہے۔ کسی پروگرام یا جزو کو استعمال کے لیے تیاری کی حالت میں لانا۔ جیسا کہ آپ کو یاد ہے، آبجیکٹ کی تخلیق کے دوران، ایک کلاس متغیر کو براہ راست اعلان پر شروع کیا جا سکتا ہے:
class Cat {
   private int age = 9;
   private  String name = "Tom";
یا اسے کنسٹرکٹر کے ذریعے بیرونی طور پر سیٹ کریں:
class Cat {
   private int age;
   private  String name;

   public Cat(int age, String name) {
       this.age = age;
       this.name = name;
   }
لیکن ایک اور طریقہ ہے: ایک انیشلائزیشن بلاک کے ذریعے ایک اندرونی آبجیکٹ متغیر کو سیٹ کرنا، جو کلاس کے اندر گھبگھرالی منحنی خطوط وحدانی { } کی طرح نظر آتا ہے، بغیر کسی نام کے (جیسے طریقہ یا کنسٹرکٹر):
class Cat {
   private int age;
   private  String name;

   {
       age = 10;
       name = "Tom";
   }
یعنی انیشیلائزیشن بلاک کوڈ کا ایک ٹکڑا ہے جو کسی چیز کے بننے پر لوڈ ہوتا ہے۔ عام طور پر، اس طرح کے بلاکس کو کچھ پیچیدہ حسابات کرنے کے لیے استعمال کیا جاتا ہے جو کلاس لوڈ کرتے وقت ضروری ہوتے ہیں۔ ان حسابات کے نتائج کو متغیر کی قدروں کے طور پر بیان کیا جا سکتا ہے۔ اس کے علاوہ، باقاعدہ ابتدائی بلاکس کے علاوہ، جامد بھی ہیں، جو ایک جیسے نظر آتے ہیں، لیکن گھوبگھرالی منحنی خطوط وحدانی سے پہلے جامد مطلوبہ الفاظ رکھتے ہیں ۔
class Cat {
   private static int age;
   private static String name;

   static{
       age = 10;
       name = "Tom";
   }
یہ بلاک بالکل پچھلے بلاک جیسا ہے۔ لیکن اگر ریگولر کو ٹرگر کیا جاتا ہے جب ہر شے کو شروع کیا جاتا ہے، تو جامد صرف ایک بار ٹرگر کرے گا، جب کلاس لوڈ ہو گی۔ اس طرح کے بلاک میں، ایک اصول کے طور پر، جامد کلاس متغیرات کے بعد کے آغاز کے لیے کچھ پیچیدہ حسابات بھی کیے جاتے ہیں۔ ایک جامد بلاک پر وہی پابندیاں لاگو ہوتی ہیں جو کہ جامد طریقوں پر ہوتی ہیں: یہ غیر جامد ڈیٹا کے ساتھ ساتھ موجودہ آبجیکٹ کا حوالہ بھی استعمال نہیں کر سکتا ہے ۔ جاوا ڈویلپر کے انٹرویوز سے سوالات اور جوابات کا تجزیہ۔  حصہ 4 - 6اگلا، ہم اس لمحے کی بہتر تفہیم کے لیے کلاس کی ابتدا کی ترتیب دیکھ سکتے ہیں (اس کے اجداد کے ساتھ) جب ابتدائی بلاکس کو متحرک کیا جاتا ہے۔

36. ایک کلاس پبلک کلاس چائلڈ کو وراثت میں حاصل کرنے کے لیے والدین کو بڑھایا جاتا ہے، آبجیکٹ کی ابتدا کا حکم لکھیں

جب چائلڈ کلاس کو لوڈ کیا جاتا ہے، شروع کرنے کا حکم حسب ذیل ہوگا:
  1. پیرنٹ کلاس کے جامد فیلڈز ۔
  2. پیرنٹ کلاس کے لیے جامد ابتداء بلاک ۔
  3. چائلڈ کلاس کے جامد فیلڈز ۔
  4. چائلڈ کلاس کے لیے جامد ابتدائی بلاک ۔
  5. پیرنٹ کلاس کے غیر جامد فیلڈز ۔
  6. پیرنٹ کلاس کے لیے جامد ابتداء بلاک نہیں ہے ۔
  7. پیرنٹ کلاس کے لیے کنسٹرکٹر ۔
  8. چائلڈ کلاس کے غیر جامد فیلڈز ۔
  9. چائلڈ کلاس کے لیے جامد ابتدائی بلاک نہیں ہے ۔
  10. چائلڈ کلاس کا کنسٹرکٹر
جاوا ڈویلپر کے انٹرویوز سے سوالات اور جوابات کا تجزیہ۔  حصہ 4 - 7یہاں ایک مختصر مضمون ہے جو عملی طور پر ابتدائی ترتیب کی وضاحت کرتا ہے۔

37. آپ کلاسز (آبجیکٹ) کے درمیان کن رشتوں کو جانتے ہیں؟

جاوا میں کلاسوں کے درمیان دو قسم کے تعلقات ہیں:
  • IS-A رشتہ
OOP میں IS-A اصول طبقاتی وراثت یا انٹرفیس کے نفاذ پر مبنی ہے۔ مثال کے طور پر، اگر شعر کی کلاس Cat سے وراثت میں ملتی ہے ، تو ہم کہتے ہیں کہ شیر ہے Cat :
Lion IS-A Cat
(لیکن ہر بلی شیر نہیں ہوتی ) انٹرفیس کے ساتھ صورتحال بالکل ایک جیسی ہے۔ اگر شیر کلاس WildAnimal انٹرفیس کو لاگو کرتی ہے ، تو وہ بھی ایک رشتہ میں ہیں:
Lion IS-A WildAnimal
  • HAS-A تعلقات
اس قسم کا رشتہ دوسرے طبقوں کے ذریعہ کلاسوں کے استعمال پر مبنی ہے، جسے "ایسوسی ایشن" بھی کہا جاتا ہے۔ ایسوسی ایشن ایک کلاس ہے جو دوسری کلاس (یا یہاں تک کہ ایک دوسرے) کا حوالہ دیتی ہے۔ مثال کے طور پر، کار کی کلاس مسافر کلاس کا حوالہ دے سکتی ہے ، اور یہ رشتہ ہوگا:
Car HAS-A Passenger
اور اس کے برعکس: اگر مسافر کے پاس کار کا حوالہ ہے ، تو یہ تعلق ہوگا:
Passenger HAS-A Car

38. آپ اشیاء کے درمیان کون سے ایسوسی ایٹیو کنکشن جانتے ہیں؟

جمع اور تشکیل ایسوسی ایشن کے خصوصی معاملات سے زیادہ کچھ نہیں ہیں۔ جمع ایک ایسا رشتہ ہے جہاں ایک چیز دوسرے کا حصہ ہوتی ہے۔ مثال کے طور پر، ایک مسافر گاڑی میں ہو سکتا ہے۔ اس کے علاوہ، بہت سے مسافر ہوسکتے ہیں یا بالکل نہیں (اگر ہم ٹیسلا کے بارے میں بات کر رہے ہیں، تو ڈرائیور کی ضرورت نہیں ہے). مثال کے طور پر:
public class Car {
   private List passengers = new ArrayList<>();

 void setPassenger(Passenger passenger) {
     passengers.add(passenger);
 }

   void move() {
       for (Passenger passenger : passengers) {
           System.out.println("Перевозка пассажира - " + passenger.toString());
       }
       passengers.clear();
   }
}
یعنی، ہمیں مسافروں کی تعداد کی پرواہ نہیں ہے (یا کوئی بھی ہے یا نہیں): کار کلاس کی فعالیت اس پر منحصر نہیں ہے۔ جمع کا مطلب یہ بھی ہے کہ جب کسی چیز کو کسی دوسری چیز کے ذریعہ استعمال کیا جاتا ہے تو پہلی چیز کو دوسری اشیاء میں استعمال کیا جاسکتا ہے۔ مثال کے طور پر، ایک ہی طالب علم نٹنگ کلب اور راکرز کے میوزک گروپ دونوں کا ممبر ہو سکتا ہے، اور ساتھ ہی انگریزی سیکھنے والوں کے گروپ میں بھی جا سکتا ہے۔ جیسا کہ آپ سمجھتے ہیں، جمع کرنا کلاسوں کے درمیان ایک ڈھیلا سا تعلق ہے۔ جاوا ڈویلپر کے انٹرویوز سے سوالات اور جوابات کا تجزیہ۔  حصہ 4 - 8کمپوزیشن ایک اور بھی سخت رشتہ ہے، جب کوئی شے نہ صرف دوسری شے کا حصہ ہوتی ہے، بلکہ دوسری چیز کا کام بھی پہلی چیز پر بہت زیادہ منحصر ہوتا ہے۔ مثال کے طور پر، گاڑی کا انجن۔ اگرچہ انجن گاڑی کے بغیر موجود ہو سکتا ہے، لیکن یہ اس کے باہر بیکار ہے۔ ٹھیک ہے، ایک گاڑی بغیر انجن کے کام نہیں کر سکتی:
public class Car {
   private Engine engine;

   public Car(Engine engine) {
       this.engine = engine;
   }

   void startMoving() {
       engine.start();
           ...
   }
کمپوزیشن کا مطلب یہ بھی ہے کہ جب کسی چیز کو دوسری چیز استعمال کرتی ہے تو پہلی چیز کسی اور سے تعلق نہیں رکھ سکتی۔ اگر ہم اپنی مثال پر واپس جائیں تو، ایک انجن صرف ایک کار کا ہو سکتا ہے، لیکن ایک ہی وقت میں دو یا زیادہ سے نہیں۔ ہم شاید آج یہاں رک جائیں گے۔جاوا ڈویلپر کے انٹرویوز سے سوالات اور جوابات کا تجزیہ۔  حصہ 4 - 9
سیریز میں دیگر مواد:
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION