CodeGym /جاوا بلاگ /Random-SD /جاوا ڊولپر پوزيشن لاءِ نوڪري جي انٽرويو کان سوالن ۽ جوابن...
John Squirrels
سطح
San Francisco

جاوا ڊولپر پوزيشن لاءِ نوڪري جي انٽرويو کان سوالن ۽ جوابن جي ڳولا. حصو 2

گروپ ۾ شايع ٿيل
هيلو ٻيهر، هرڪو! اسان جونيئر، وچولي سطح ۽ سينيئر جاوا ڊولپرز لاءِ سوالن جا جواب ڳولڻ جاري رکون ٿا. سوال سپر دلچسپ آهن. مان ذاتي طور تي انهن جو تجزيو ڪرڻ پسند ڪريان ٿو، ڇاڪاڻ ته اها منهنجي نظرياتي ڄاڻ ۾ خلا ڳولڻ ۾ مدد ڪري ٿي، ۽ ڪڏهن ڪڏهن سڀ کان وڌيڪ غير متوقع هنڌن تي. جاوا ڊولپر پوزيشن لاءِ نوڪري جي انٽرويو کان سوالن ۽ جوابن جي ڳولا.  حصو 2 - 1پويون حصو هن مضمون ۾ ڳولهي سگهجي ٿو . پر ان کان اڳ اسان شروع ڪيو، مان توهان کي ياد ڏيارڻ چاهيان ٿو ته:
  1. آئون انهن سوالن کي ڇڏي ڏيندس جيڪي مضمونن جي هن سلسلي سان اوورليپ ٿين ٿا ته جيئن معلومات کي غير ضروري طور تي نقل نه ڪيو وڃي. آئون انهن مضمونن کي پڙهڻ جي صلاح ڏيان ٿو جيئن اهي سڀ کان وڌيڪ عام (مشهور) جاوا ڪور انٽرويو سوالن کي ڍڪيندا آهن.
  2. مان جوابن کي وڌيڪ تفصيل سان بيان ڪري سگهان ٿو، پر مان نه ڪندس، ڇو ته پوءِ هر جواب سڄي مضمون لاءِ ڇڪي سگهي ٿو. ۽ ڪو به توهان کان ڪنهن به نوڪري جي انٽرويو ۾ تفصيل جي ان سطح لاءِ نه پڇندو.
جيڪڏھن توھان چاھيو ته مان ڳنڍي مطالعي لاءِ لنڪس ڇڏي ڏيندس. اچو ته پرواز ڪريون!

11. Object ڪلاس جي سڀني طريقن کي نالا ڏيو

اعتراض ڪلاس ۾ 11 طريقا آهن:
  1. ڪلاس<؟> getClass() - موجوده اعتراض جو ڪلاس حاصل ڪريو؛

  2. int hashCode() - موجوده اعتراض جو هيش ڪوڊ حاصل ڪريو؛

  3. boolean equals (Object obj) - موجوده شئي کي ٻئي شئي سان ڀيٽيو؛

  4. آبجیکٹ کلون () - موجوده اعتراض جي ڪاپي ٺاهي ۽ واپس ڪريو؛

  5. String toString() - حاصل ڪريو اسٽرنگ کي اعتراض جي نمائندگي؛

  6. void notify() - هڪ ٿريڊ کي جاڳايو هن اعتراض جي مانيٽر تي انتظار ڪري رهيو آهي (ڌاڙي جو انتخاب بي ترتيب آهي)؛

  7. void notifyAll() — جاڳايو سڀ ٿريڊ هن اعتراض جي مانيٽر تي انتظار ڪري رهيا آهن؛

  8. void wait() - ڪرائنٽ ٿريڊ کي موجوده مانيٽر تي انتظار ڪريو (موجوده ٿريڊ کي منجمد ڪريو) جيستائين ڪو اطلاع يا اطلاع نه ڏئي سڀ ڪال ٿريڊ کي جاڳائيندي (صرف هم وقت ساز بلاڪ ۾ ڪم ڪندو آهي)؛

  9. void انتظار (ڊگهو وقت ختم) - موجوده ٿريڊ کي موجوده مانيٽر تي انتظار ڪريو (موجوده هم وقت سازي واري بلاڪ تي)، پر انتظار واري حالت مان نڪرڻ لاءِ وقت ختم ٿيڻ سان (يا ٻيهر، جيستائين اطلاع يا اطلاع نه ٿي سڀ ڪال ٿريڊ کي جاڳائيندي)؛

  10. void انتظار (ڊگهو وقت ختم، int nanos) - هي طريقو پوئين طريقي وانگر آهي، پر وڌيڪ صحيح وقت سان؛

  11. void finalize() - ھي طريقو سڏيو ويندو آھي (آخر ۾) ان کان اڳ جو اعتراض کي ڪچري جي ڪليڪٽر طرفان هٽايو وڃي. اهو حاصل ڪيل وسيلن کي صاف ڪرڻ لاء استعمال ڪيو ويندو آهي.

استعمال ڪرڻ لاءِ hashCode , equals , clone , toString ، ۽ طريقن کي صحيح طور تي حتمي شڪل ڏيڻ لاءِ ، انھن کي موجوده ڪم جي خصوصيتن جي مطابق ختم ڪيو وڃي.

12. وسيلن سان ڪم ڪرڻ جي ڪوشش ڪرڻ ۽ آخر ۾ ڪوشش ڪرڻ جي وچ ۾ ڇا فرق آهي؟

عام طور تي، جڏهن استعمال ڪندي try-catch-finally ، حتمي بلاڪ وسيلن کي بند ڪرڻ لاء استعمال ڪيو ويندو آهي. جاوا 7 متعارف ڪرايو نئين ڪوشش سان وسيلن جي بيان. اهو هڪجهڙائي آهي ڪوشش-پڪڙ-آخر ۾ وسيلن کي آزاد ڪرڻ لاء، پر وڌيڪ جامع ۽ پڙهڻ جي قابل. اچو ته ياد ڪريون ته ڪوشش-پڪڙ-آخر ۾ ڇا نظر اچي ٿو:
String text = "some text......";
BufferedWriter bufferedWriter = null;
try {
   bufferedWriter = new BufferedWriter(new FileWriter("someFileName"));
   bufferedWriter.write(text);
} catch (IOException e) {
   e.printStackTrace();
} finally {
   try {
       bufferedWriter.close();
   } catch (IOException e) {
       e.printStackTrace();
   }
}
هاڻي اچو ته هن ڪوڊ کي ٻيهر لکون، پر استعمال ڪندي ڪوشش ڪريون وسيلن سان :
String text = "some text......";
try(BufferedWriter bufferedWriter =new BufferedWriter(new FileWriter("someFileName"))) {
   bufferedWriter.write(text);
} catch (IOException e) {
   e.printStackTrace();
}
هاڻي اهو ڪجهه آسان آهي، توهان نه سوچيو؟ سادي ڪوڊ جي اضافي ۾، نوٽ ڪرڻ لاء ڪجهه ٻيا نقطا آهن:
  1. وسيلن سان ڪوشش ڪرڻ ۾ ، قوس ۾ بيان ڪيل وسيلا (وسيلا جيڪي بند ڪيا ويندا) لازمي طور تي آٽو ڪلوز ايبل انٽرفيس ۽ ان جي واحد بند () طريقي کي لاڳو ڪرڻ گهرجن.

    بند ڪرڻ جو طريقو هڪ واضح آخر ۾ بلاڪ ڪيو ويو آهي ، ٻي صورت ۾، پروگرام ڪيئن اندازو لڳائي سگهندو ته وسيلن کي ڪيئن بند ڪيو وڃي؟

    پر توهان شايد گهٽ ۾ گهٽ لکندا آهيو توهان جي پنهنجي وسيلن تي عملدرآمد ۽ انهن جي بند ٿيڻ جو طريقو.

  2. بلاڪ هن ترتيب ۾ جاري ڪيا ويا آهن:

    1. ڪوشش بلاڪ .
    2. ضمير آخر بلاڪ.
    3. ڪيچ بلاڪ، جيڪو ڪيچ ڪري ٿو استثنا جيڪي پوئين مرحلن ۾ ٿين ٿيون .
    4. واضح آخر بلاڪ.

    ضابطي جي طور تي، فهرست ۾ هيٺ ڏنل استثنا جيڪي مٿاهون اڇلايا ويا آهن انهن ۾ مداخلت ڪن ٿا.

تصور ڪريو ته توھان استعمال ڪري رھيا آھيو ڪوشش-ڪيچ-آخر ۾ ۽ توھان حاصل ڪريو ھڪڙو استثنا ڪوشش بلاڪ ۾. پوءِ مخصوص ڪيچ بلاڪ فوري طور تي عمل ڪرڻ شروع ٿئي ٿو، جنهن ۾ اسان هڪ ٻيو استثنا لکيو آهي (مثال طور، هڪ پيغام سان جيڪو غلطي کي وڌيڪ تفصيل سان بيان ڪري ٿو)، ۽ توهان چاهيو ٿا ته طريقو هن استثنا کي اڳتي وڌايو. پوء آخرڪار بلاڪ تي عمل ڪيو ويو آهي، ۽ هڪ استثنا ان ۾ پڻ اڇلائي وئي آهي. پر هن ڀيري هڪ مختلف. انهن ٻن استثنان مان ڪهڙو طريقو آخرڪار اڇلائي ڇڏيندو؟ آخرڪار بلاڪ طرفان اڇلايل استثنا ! پر ھاڻي اسان ھڪ ٻئي نقطي تي آيا آھيون ڪوشش سان وسيلن جي . اچو ته غور ڪريون ته ساڳي صورتحال ۾ وسيلن جي ڪوشش ڪيئن ٿي رهي آهي. اسان کي ڪوشش بلاڪ ۾ استثنا ملي ٿو جڏهن وسيلن کي بند ڪرڻ جي ڪوشش ڪئي وئي بند() طريقي ۾، يعني ضمني آخر ۾ بلاڪ ۾ . انهن مان ڪهڙن استثنان کي پڪڙيندو ؟ هڪ ڪوشش بلاڪ طرفان اڇلائي! ضميري پڇاڙيءَ واري بلاڪ مان استثنا (from the loss() طريقو) نظر انداز ڪيو ويندو. استثناءَ کي نظر انداز ڪرڻ کي استثنا دٻائڻ به چئبو آهي.

13. bitwise آپريشن ڇا آهن؟

Bitwise آپريشن بٽس جي تسلسل تي عمل آھن. انهن ۾ شامل آهن منطقي آپريشن ۽ bitwise شفٽ. منطقي آپريٽرز:
  • bitwise AND - بٽ ويلز جو مقابلو ڪري ٿو. ڪو به بٽ 0 (غلط) تي سيٽ ڪري ٿو نتيجي ۾ لاڳاپيل بٽ کي 0 تي. يعني، جيڪڏھن ھڪڙو سا آھي 1 (سچو) ٻنھي نسبتن ۾، پوءِ نتيجو بٽ به 1 ھوندو.

    AND يا & جي طور تي ظاهر ڪيو ويو آهي

    مثال: 10111101 ۽ 01100111 = 00100101

  • bitwise OR - ھي آپريشن پوئين ھڪڙي جي ابتڙ آھي. ڪا به بٽ 1 تي سيٽ ڪري ٿي، نتيجي ۾ لاڳاپيل بٽ کي 1 تي سيٽ ڪري ٿي. ان مطابق، جيڪڏھن بٽ ٻن مقابلي واري قدرن ۾ 0 آھي، ته پوءِ نتيجو بٽ به 0 ھوندو.

    OR يا | طور ظاهر ڪيو ويو

    مثال: 10100101 | 01100011 = 11100111

  • bitwise NOT - ھي آپريٽر ھڪڙي قيمت تي لاڳو ٿئي ٿو. اهو ڦاٽندو آهي (انڌار) بٽ. اهو آهي، اهي بٽ جيڪي 1 هئا 0 بڻجي ويا؛ ۽ جيڪي 0 هئا 1 ٿي ويا.

    جي طور تي ظاهر ڪيو ويو NOT يا ~

    مثال: ~10100101 = 01011010

  • bitwise exclusive OR — بيٽ ويلز جو مقابلو ڪري ٿو. جيڪڏهن ٻئي بٽ 1 آهن، ته پوءِ نتيجو وارو بٽ 0 آهي. جيڪڏهن ٻئي بٽ 0 آهن، ته پوءِ نتيجو بٽ 0 آهي. ٻين لفظن ۾، نتيجي ۾ بٽ 1 ٿيڻ لاءِ، صرف هڪ بٽ 1 هجڻ گهرجي، ۽ ٻيو بٽ 0 هجڻ گهرجي.

    XOR يا ^ طور ظاهر ڪيو ويو آهي

    مثال: 10100101 ^ 01100011 = 11000110

Bitwise shifts ( >> ۽ << ) اوپيرينڊ جي بٽ کي مخصوص سمت ۾، جڳهن جي مخصوص تعداد جي ذريعي. خالي ٿيل جايون صفر سان ڀرجي ويون آهن. مثال طور:
  1. 01100011 >> 4 = 00000110
  2. 01100011 << 3 = 00011000
استثنا اهو آهي جڏهن توهان هڪ منفي نمبر کي ساڄي طرف ڦيرايو. جيئن توهان کي ياد هوندو، هڪ دستخط ٿيل نمبر جو پهريون سا نشان اشارو ڪري ٿو. جيڪڏهن اهو ساٽ 1 آهي، پوء اهو نمبر منفي آهي. جيڪڏهن توهان هڪ منفي نمبر ڦيرايو ٿا، خالي ٿيل جڳهون صفر سان ڀريل نه آهن، بلڪه انهن سان، ڇاڪاڻ ته نشاني بٽ کي محفوظ رکڻ گهرجي. مثال طور: 10100010 >> 2 = 11101000 انهي چيو ته، جاوا وٽ هڪ اضافي غير دستخط ٿيل ساڄي شفٽ آپريٽر آهي (>>>). هي آپريٽر >> سان هڪجهڙائي رکي ٿو، پر جڏهن منتقل ڪيو وڃي ٿو، خالي ٿيل جڳهون 0 سان ڀريون وڃن ٿيون، قطع نظر ته اوپيرينڊ هڪ منفي نمبر آهي يا هڪ مثبت نمبر. مثال طور: 10100010 >>> 2 = 00101000 وڌيڪ پڙهو bitwise آپريشن بابت هتي . جاوا ڊولپر پوزيشن لاءِ نوڪري جي انٽرويو کان سوالن ۽ جوابن جي ڳولا.  حصو 2 - 2توهان وٺي سگهو ٿا hash() طريقو HashMaps ۾ جاوا ۾ bitwise شفٽ جي مثال طور. هي طريقو استعمال ڪيو ويندو آهي ڪنجي جي خاص اندروني هيش ڪوڊ کي طئي ڪرڻ لاءِ: جاوا ڊولپر پوزيشن لاءِ نوڪري جي انٽرويو کان سوالن ۽ جوابن جي ڳولا.  حصو 2 - 3هي طريقو توهان کي هڪجهڙائي سان ڊيٽا کي HashMap ۾ ورهائڻ جي اجازت ڏئي ٿو، ٽڪرن جي تعداد کي گهٽائڻ لاءِ.

14. جاوا ۾ ڪهڙيون معياري غير تبديل ٿيندڙ شيون آهن؟

ڪا شئي ان صورت ۾ بدلجندڙ آهي ، جڏهن اها پنهنجي اصل قدرن کي تبديل ڪرڻ جي اجازت نه ڏئي. اهو ٿي سگهي ٿو طريقا جيڪي مختلف قدرن سان هڪ ئي قسم جون نيون شيون واپس ڪن. ڪجھ غير معياري شيون شامل آھن:
  • بلاشڪ، جاوا جو سڀ کان مشهور ناقابل بدلائي قسم آهي String؛
  • لفافي طبقن جا مثال جيڪي معياري قسمن کي لپيندا آهن: بوليان، ڪردار، بائيٽ، ننڍو، انٽيجر، ڊگهو، ڊبل، فلوٽ؛
  • BigInteger ۽ BigDecimal شيون، جيڪي عام طور تي خاص طور تي BIG نمبرن لاءِ استعمال ٿين ٿيون؛
  • StackTraceElement شيون جيڪي هڪ اسٽيڪ ٽريس ٺاهيندا آهن (مثال طور، هڪ استثنا جو اسٽيڪ ٽريڪ)؛
  • فائل ڪلاس جو هڪ اعتراض - اهو فائلن کي تبديل ڪري سگهي ٿو، پر ساڳئي وقت اعتراض پاڻ کي اڻڄاتل رهي ٿو؛
  • UUIDs، جيڪي اڪثر ڪري منفرد طور تي عناصر جي سڃاڻپ ڪرڻ لاء استعمال ڪيا ويندا آهن؛
  • java.time پيڪيج ۾ ڪلاس جا سڀ شيون؛
  • مقامي شيون، جيڪي جغرافيائي، سياسي، يا ثقافتي علائقي کي سڃاڻڻ لاءِ استعمال ٿين ٿيون.

15. غير تبديل ٿيندڙ شئي جا ڪهڙا فائدا آهن عام شين جي ڀيٽ ۾؟

  1. غير تبديل ٿيندڙ شيون هڪ گھڻائي واري ماحول ۾ استعمال ڪرڻ لاء محفوظ آهن . اهي اهو ٺاهيندا آهن ته توهان کي نسل جي حالتن جي ڪري ڊيٽا جي نقصان جي باري ۾ پريشان ٿيڻ جي ضرورت ناهي. اهو مختلف آهي جڏهن توهان عام شين سان ڪم ڪري رهيا آهيو. انهي صورت ۾، توهان کي سوچڻو پوندو ۽ سٺو ميڪانيزم سان گڏ اچڻو پوندو جڏهن هڪ متوازي ماحول ۾ اعتراض استعمال ڪندي.

  2. تبديل نه ٿيندڙ شيون نقشي ۾ چاٻين وانگر سٺيون آھن. جيڪڏهن توهان هڪ ميوٽبل اعتراض کي HashMap ڪيچ جي طور تي استعمال ڪريو ٿا ۽ پوء اعتراض جي حالت تبديل ٿي وڃي ٿي، پوء ڊيٽا جي جوڙجڪ مونجهارو ٿي سگهي ٿي: اعتراض اڃا به موجود هوندو، پر جيڪڏهن توهان استعمال ڪيو ٿا containsKey()، توهان شايد اهو نه ڳولي سگهو ٿا.

  3. غير تبديل ٿيندڙ شيون ناقابل قابل (مسلسل) ڊيٽا کي محفوظ ڪرڻ لاء عظيم آهن جيڪي ڪڏهن به تبديل نه ٿيڻ گهرجن جڏهن پروگرام هلندي آهي.

  4. هڪ ٻيو فائدو ناڪامي جوهر آهي. جيڪڏهن هڪ ناقابل بدلي شئي هڪ استثنا اڇلائي، ان کي ناپسنديده (ٽڙيل) حالت ۾ نه ڇڏيو ويندو.

  5. اهي ڪلاس آسان آهن ٽيسٽ ڪرڻ.

  6. توهان کي ڪنهن به اضافي ميڪانيزم جي ضرورت ناهي جهڙوڪ ڪاپي ڪنسٽرڪٽر يا اعتراض ڪلوننگ تي عمل درآمد.

OOP بابت سوال

16. عام طور تي OOP جا فائدا ڇا آهن ۽ پروسيسنگ پروگرامنگ جي مقابلي ۾؟

ٺيڪ، OOP جا فائدا:
  1. ڪمپليڪس ايپليڪيشنون پروسيسنگ پروگرامنگ جي ڀيٽ ۾ OOP استعمال ڪندي لکڻ آسان آهن ڇو ته هر شي کي ننڍڙن ماڊلز ۾ ورهايو ويو آهي - شيون جيڪي هڪ ٻئي سان رابطو ڪن ٿيون - ۽ نتيجي طور، پروگرامنگ کي گهٽجي ويو آهي شين جي وچ ۾ لاڳاپا.

  2. او او پي سان لکيل ايپليڪيشنون تبديل ڪرڻ ۾ تمام آسان آهن (جڏهن ڊزائن جا اصول صحيح طور تي مشاهدو ڪيا وڃن).

  3. جيئن ته ٻئي ڊيٽا ۽ ڊيٽا آپريشن هڪ واحد ادارو ٺاهيندا آهن، اهي سڀئي ايپليڪيشن تي گندا نه هوندا آهن (جيڪو اڪثر طريقي سان پروگرامنگ ۾ هوندو آهي).

  4. encapsulation جو اصول صارف کان سڀ کان وڌيڪ نازڪ ڊيٽا کي بچائيندو آهي.

  5. ساڳيو ڪوڊ مختلف ڊيٽا سان ٻيهر استعمال ڪري سگهجي ٿو ڇو ته ڪلاس توهان کي ڪيتريون ئي شيون ٺاهي سگھن ٿا، هر هڪ پنهنجي پنهنجي قدر سان.

  6. وراثت ۽ پوليمورفيزم پڻ توهان کي ٻيهر استعمال ڪرڻ ۽ موجوده ڪوڊ کي وڌائڻ جي اجازت ڏين ٿا (جهڙي ڪارڪردگي کي نقل ڪرڻ جي بدران).

  7. ايپليڪيشن کي وڌائڻ هڪ طريقيڪار واري طريقي جي ڀيٽ ۾ آسان آهي.

  8. او او پي جي طريقي سان عمل درآمد جي تفصيلن کي ختم ڪرڻ ممڪن بڻائي ٿو.

17. اسان کي ٻڌايو ته OOP جا ڪهڙا نقصان آهن

بدقسمتي سان، اهي پڻ موجود آهن:
  1. او او پي کي تمام گهڻي نظرياتي ڄاڻ جي ضرورت آهي جيڪا توهان کي ڪجهه به لکڻ کان پهريان حاصل ڪرڻ گهرجي.

  2. OOP خيالن کي سمجھڻ ۽ عملي طور تي لاڳو ڪرڻ ايترو آسان ناهي (توهان کي دل ۾ ٿورو فلسفي ٿيڻ جي ضرورت آهي).

  3. سسٽم جي وڌندڙ پيچيدگي جي ڪري او او پي پروگرام جي ڪارڪردگي کي ٿورڙي گھٽائي ٿو.

  4. او او پي جي طريقي کي وڌيڪ يادگيري جي ضرورت آهي ڇو ته هر شيء تي مشتمل آهي طبقن، انٽرفيس، طريقن، جيڪي عام متغيرن جي ڀيٽ ۾ تمام گهڻي ياداشت کڻندا آهن.

  5. شروعاتي تجزيي لاءِ گهربل وقت هڪ طريقيڪار واري طريقي کان وڌيڪ آهي.

18. جامد پوليمورفيزم بمقابله متحرڪ پوليمورفيزم ڇا آهي؟

پوليمورفيزم هڪ ئي طبقي يا انٽرفيس جي شين کي مختلف طريقي سان عمل ڪرڻ جي اجازت ڏئي ٿو. پوليمورفيزم جا ٻه قسم آهن، جن کي شروعاتي ۽ دير سان پابند پڻ سڏيو ويندو آهي. جامد پوليمورفيزم، يا ابتدائي پابند:
  • مرتب وقت تي ٿئي ٿو (پروگرام جي زندگيءَ جي شروعات ۾)؛
  • فيصلو ڪري ٿو ته ڪھڙي طريقي سان گڏ ڪرڻ جي وقت تي عمل ڪرڻ؛
  • طريقو اوورلوڊنگ جامد پوليمورفيزم جو هڪ مثال آهي.
  • ابتدائي بائنڊنگ ۾ نجي، جامد ۽ آخري طريقا شامل آهن؛
  • وراثت شروعاتي پابند ۾ شامل نه آهي؛
  • جامد پوليمورفيزم ۾ مخصوص شيون شامل نه هونديون آهن، بلڪه درجي جي قسم بابت معلومات جيڪا متغير نالي جي کاٻي پاسي ظاهر ٿئي ٿي.
متحرڪ پوليمورفيزم، يا دير سان پابند:
  • رن ٽائم تي ٿئي ٿو (جڏهن ته پروگرام هلي رهيو آهي)؛
  • متحرڪ پوليمورفيزم فيصلو ڪري ٿو ته رن ٽائم تي ڪهڙي مخصوص طريقي سان عمل ڪرڻ جو طريقو هوندو.
  • طريقو اوور رائڊنگ متحرڪ پوليمورفيزم جو هڪ مثال آهي.
  • دير سان بائنڊنگ جو مطلب آهي هڪ مخصوص شئي کي تفويض ڪرڻ، ان جي قسم جو حوالو، يا ان جي سپر ڪلاس؛
  • وراثت متحرڪ پوليمورفيزم سان لاڳاپيل آهي.

19. OOP ۾ تجريد جي اصول جي وضاحت ڏيو

OOP ۾، تجريد هڪ شئي جي معنيٰ خيز خاصيتن جي هڪ سيٽ کي الڳ ڪرڻ جو هڪ طريقو آهي، جڏهن ته غير اهم تفصيلن کي ڇڏي. اهو آهي، جڏهن او او پي جي طريقي سان هڪ پروگرام ٺاهيندي، توهان عام ماڊل تي ڌيان ڏيو، انهن جي عمل جي تفصيل ۾ وڃڻ کان سواء. جاوا ۾، تجريد انٽرفيس ذريعي محسوس ڪيو ويندو آهي . مثال طور، توهان وٽ ڪار آهي ۽ اهو هڪ انٽرفيس هوندو. ۽ ان سان مختلف لاڳاپا - مثال طور، انجڻ شروع ڪرڻ، گيئر منتقل ڪرڻ - اهي ڪم آهن، جن کي اسين استعمال ڪندا آهيون بغير ڪنهن عمل جي تفصيلن ۾. درحقيقت، جڏهن توهان ڊرائيونگ ڪري رهيا آهيو، توهان اهو نه سوچيو ته گيئر باڪس پنهنجي مقصد کي ڪيئن پورو ڪري ٿو، يا ڪيئن چاٻي انجڻ کي شروع ڪري ٿو، يا حقيقت ۾ اسٽيرنگ ويل ويلز کي ڪيئن ڦيرايو. ۽ جيڪڏهن توهان ڪجهه ڪارڪردگي جي عمل کي تبديل ڪريو (مثال طور، انجڻ)، توهان شايد ان کي نوٽيس نه ڪيو. اھو توھان لاءِ ڪوئي فرق نٿو پوي: توھان عمل درآمد جي تفصيلن تي غور نه ڪريو. توهان لاءِ اهم آهي ته عمل ڪيو وڃي ٿو. ذات ۾، هي خلاصو عمل درآمد جي تفصيلن کي ختم ڪري ٿو. هن نقطي تي، اسان اڄ بند ڪنداسين: جاري رکڻ لاء!
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION