JavaRush /جاوا بلاگ /Random-SD /جاوا ۾ اينيم بابت 15 ڊولپر انٽرويو سوال (جوابن سان!)
Treefeed
سطح

جاوا ۾ اينيم بابت 15 ڊولپر انٽرويو سوال (جوابن سان!)

گروپ ۾ شايع ٿيل
Enumeration ( Enum ) جاوا 5 ۾ متعارف ڪرايو ويو ۽ ان وقت کان وٺي اهو جاوا ڊولپرز ۾ ڪافي مقبول ٿي چڪو آهي. اهو وڏي پيماني تي مختلف جاوا اپليڪيشن ۾ استعمال ڪيو ويندو آهي. ڇاڪاڻ ته جاوا ۾ اينيم سي يا سي ++ جي ڀيٽ ۾ تمام گهڻو ورسٽائل آهي، اهو پڻ ڪيترن ئي دلچسپ استعمال جا ڪيس پيش ڪري ٿو، جن مان ڪجهه توهان مضمون ۾ ڏٺو 10 جاوا ۾ اينم استعمال ڪرڻ جا طريقا . پر هن مقبوليت جي باوجود، ڪيترائي جاوا پروگرامر اڃا تائين اينم پاران مهيا ڪيل ڪارڪردگي ۽ جاوا ڪوڊ ۾ اينم استعمال ڪرڻ جي پيچيدگي کان بي خبر آهن. اهو واضح ٿي ويو ڪيترن ئي پڙهندڙن کان پڇڻ، مثال طور، اينم جي صلاحيت بابت جاوا ۾ هڪ انٽرفيس کي لاڳو ڪرڻ جي باري ۾ يا اسان اينيم کان ٻاهر اينيم کي ڇو نه ٿا ڪري سگھون ، ياد رهي ته انهن کي هڪ انٽرويو ۾ ان بابت پڇيو ويو. هن اسان کي جاوا اينم ۾ اڪثر پڇيل سوالن جي هڪ فهرست مرتب ڪرڻ لاءِ متاثر ڪيو جيڪي نه صرف توهان کي انٽرويو ۾ ڪامياب ٿيڻ ۾ مدد ڏين ٿا پر سکڻ لاءِ نوان رستا پڻ کوليندا آهن. جيئن اڳ بيان ڪيو ويو آهي، اڪثر انٽرويو سوال توهان کي موضوع کي وڌيڪ سنجيدگي سان وٺڻ لاء مجبور ڪندا آهن، جيڪا ڪا خراب شيء ناهي، ۽ اينم جي طاقت ۽ ڪارائتو ڏنو، اهو وقت آهي ته توهان هڪ اينم ماسٽر بڻجي ويا آهيو. ھيٺ ڏنل سوالن جي ھڪڙي فهرست آھي مختلف ڪارڪردگي ۽ ملڪيت جي بنياد تي اينم. توھان ان کي استعمال ڪري سگھوٿا تياري واري مواد جي طور تي ھڪ انٽرويو لاءِ يا صرف ڳڻپ لاءِ ھڪڙو گائيڊ. جيڪڏهن توهان جاوا لاءِ نوان آهيو، ته توهان Enum بابت ڪيتريون ئي نيون ۽ مفيد شيون سکندا. 1) ڇا اينيم جاوا ۾ انٽرفيس لاڳو ڪري سگھي ٿو؟ ها، اينم انٽرفيس کي وارث ڪري سگهي ٿو . ڇاڪاڻ ته Enum قسم هڪ طبقي ۽ هڪ انٽرفيس سان ملندڙ جلندڙ آهي ، اهو هڪ انٽرفيس وارث ڪري سگهي ٿو. هي Enum استعمال ڪرڻ ۾ حيرت انگيز لچڪ ڏئي ٿو ڪجھ ڪيسن ۾ ڪسٽم عمل درآمد جي طور تي. هتي هن صلاحيت ۾ اينم استعمال ڪرڻ جو هڪ سٺو مثال آهي. 2) ڇا Enum ورثي ۾ (وڌيڪ) ڪلاس ٿي سگھي ٿو؟ نه، هو نه ٿو ڪري سگهي! اڻڄاتل، ڇاڪاڻ ته اهو اڳ ۾ چيو ويو آهي ته اينم قسم جاوا ۾ هڪ ڪلاس يا انٽرفيس وانگر آهي. خير، اهو ئي بنيادي سبب آهي ته هي سوال پوئين سوال کان پوءِ پڇيو وڃي ٿو. جيئن ته Enum اڳ ۾ ئي خلاصي طبقي مان ورثي ۾ ملي ٿو java.lang.Enum ، اهو واضح آهي ته ٻيو طبقو وارث نه ٿي سگهندو ڇو ته جاوا ڪيترن ئي طبقي ورثي کي سپورٽ نٿو ڪري. java.lang.Enum کان وراثت ۾ اچڻ سان ، سڀني enums ۾ ordinal() ، values()، يا valueOf() طريقا آهن . 3) بغير ڪنهن اعتراض جي هڪ اينيم ڪيئن ٺاهيو؟ ڇا اهو ممڪن آهي بغير تاليف جي غلطي؟ هي انهن مشڪل سوالن مان هڪ آهي جيڪو انٽرويو وٺندڙن سان پيار ڪندو آهي. جيئن ته هڪ اينم کي ڪجهه خاص شين جي مجموعن جي طور تي ڏٺو ويندو آهي، جهڙوڪ هفتي جا ڏينهن يا سال جا مهينا، ڪنهن به شيء کان سواء اينم حاصل ڪرڻ مشڪوڪ لڳي ٿو. پر ها، توهان بنا ڪري سگهو ٿا هڪ Enum بغير مثال جي ، مثال طور يوٽيليٽي ڪلاس ٺاهڻ سان. هي Enum استعمال ڪرڻ جو هڪ ٻيو جديد طريقو آهي: public enum MessageUtil{ ; // required to avoid compiler error, also signifies no instance public static boolean isValid() { throw new UnsupportedOperationException("Not supported yet."); } } 4) ڇا اسان انم لاءِ toString() طريقي کي ختم ڪري سگهون ٿا؟ ڇا ٿيندو جيڪڏهن اسان ٻيهر وضاحت نه ڪندا آهيون؟ يقيناً توهان Enum جي toString() طريقي کي اوور رائيڊ ڪري سگهو ٿا ، جيئن توهان ڪنهن به ڪلاس کي اوور رائيڊ ڪري سگهو ٿا جنهن کي java.lang.Object وراثت ۾ ملي ٿو ۽ وٽ toString() طريقو موجود آهي، ۽ جيتوڻيڪ توهان نه ٿا ڪريو، توهان ڪجھ به نه وڃائيندؤ ڇو ته خلاصو Enum ڪلاس جو بنياد توھان لاءِ اھو ڪندو، ۽ نالو واپس ڪندو، جيڪو Enum مثال جو نالو آھي. هتي Enum ڪلاس مان toString() طريقي لاءِ ڪوڊ آهي : public String toString() { return name; } نالو بيان ڪيو ويو آهي جڏهن ڪمپلر هڪ اينم ٺاهڻ لاءِ ڪوڊ مختص ڪري ٿو جواب ۾ اينم ڪلاس ۾ هڪ مثال ٺاهڻ جي جواب ۾ ، انهي سان گڏ ترتيب ڏيندڙ ۾ آرڊينل ٺاهي java.lang.Enum ڪلاس : enum ٺاهڻ لاءِ protected Enum(String name, int ordinal) { this.name = name; this.ordinal = ordinal; } هي واحد ڪنسٽرڪٽر آهي ، جنهن کي پروگرام ۾ Enum جي اعلان جي جواب ۾ ڪمپائلر سڏيو ويندو آهي. 5) ڇا اسان اينيم کان ٻاهر هڪ اينيم کي فوري ڪري سگهون ٿا؟ ڇو نه؟ توهان هڪ اينم کي اينم جي حدن کان ٻاهر نه ٿا ڪري سگهو ڇاڪاڻ ته اينم وٽ عوامي ناهي constructor، ۽ compiler توهان کي ڪنهن به اهڙي تعمير ڪندڙ کي متعارف ڪرائڻ جي اجازت نه ڏيندو. ڇاڪاڻ ته مرتب ڪندڙ Enum قسم جي اعلان جي جواب ۾ سڀ کان وڌيڪ ڪوڊ ٺاهي ٿو، اهو Enums اندر عوامي تعمير ڪندڙن کي اجازت نٿو ڏئي ، Enum مثالن کي اندروني طور تي اعلان ڪيو وڃي. 6) ڇا اسان هڪ اينم اندر تعمير ڪندڙ کي بيان ڪري سگهون ٿا؟ اهو سوال اڪثر ڪري پوئين هڪ جي پٺيان آهي. ها، توهان ڪري سگهو ٿا، پر ياد رکو ته اهو صرف نجي يا پئڪيج-پرائيويٽ تعمير ڪندڙن سان ممڪن آهي . Enum ۾ عوام ۽ محفوظ ڪيل تعميرات جي اجازت ناهي. هتي توهان هڪ مثال ڏسي سگهو ٿا. 7) == يا equals() طريقو استعمال ڪندي Enum جي مقابلي ۾ ڇا فرق آهي؟ هي هڪ تمام وسيع ۽ مشڪل مسئلو آهي جنهن کي هتي تفصيل سان بيان ڪيو ويو آهي . 8) آرڊينل () طريقو Enum ۾ ڇا ڪندو؟ ordinal() طريقو اهو حڪم ڏئي ٿو جنهن ۾ Enum مثالن کي Enum اندر نامزد ڪيو ويو آهي. مثال طور، DayOfWeek Enum ۾، توھان ترتيب ۾ ڏينھن بيان ڪري سگھو ٿا: public enum DayOfWeek{ MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; } ۽ جيڪڏھن اسين سڏيون ٿا DayOfWeek.MONDAY.ordinal() طريقو ، اھو موٽندو 0 - جنھن جو مطلب آھي پھريون مثال. هي طريقو تمام ڪارائتو آهي آرڊر مهيا ڪرڻ لاءِ شين جي اصل حالت موجب: يعني اهو اشارو ڪري ٿو ته TUESDAY (اڱارو) سومر کان پوءِ اچي ٿو ( سومر) ۽ WEDNESDAY (اربع) کان اڳ. اهڙي طرح، توهان سال جي مهينن جي نمائندگي ڪرڻ لاء هڪ ڳڻپ استعمال ڪري سگهو ٿا، جتي فيبروري جنوري کان پوء اچي ٿو پر مارچ کان اڳ اچي ٿو. سڀئي ڪسٽم ڳڻپيوڪر هن طريقي کي خلاصي طبقي java.lang.Enum مان ورثي ۾ ملن ٿا، ۽ اهي java.lang.Enum تي محفوظ ڪنسٽرڪٽر کي ڪال ڪري مرتب ڪندڙ طرفان مقرر ڪيا ويا آهن ، جيڪو هڪ نالو ۽ آرڊينل وٺندو آهي. 9) ڇا Enum استعمال ڪرڻ ممڪن آهي TreeSet يا TreeMap سان جاوا ۾؟ اهو هڪ واقعي دلچسپ آهي Enum سوال، ۽ هڪ اهو آهي ته ماڻهو پڇڻ چاهيندا آهن انهن جي ڄاڻ جي کوٽائي کي جانچڻ لاء. جيستائين توهان java.lang.Enum ڪوڊ نه ڏسندا ، توهان کي شايد خبر نه هوندي ته Enum Comparable انٽرفيس کي ورثي ۾ ملي ٿو ، جيڪو آرڊر ٿيل مجموعن جهڙوڪ TreeSet ۽ TreeMap ۾ استعمال لاءِ اهم ضرورت آهي . جيئن ته Enum وراثت ۾ ملندڙ انٽرفيس کي ڊفالٽ طور تي ، ان کي TreeSet ۽ TreeMap سان استعمال ڪري سگهجي ٿو . 10) Enum ۾ ordinal() ۽ compareTo() جي وچ ۾ ڇا فرق آهي؟ اهو پوئين سوال کان سڌو سنئون آهي: حقيقت ۾، compareTo() طريقي سان مهيا ڪيل ترتيب کي ترتيب ڏئي ٿو ordinal() ، جيڪو Enum جو قدرتي حڪم آهي. مختصر ۾، اينم ان ترتيب ۾ مقابلي کي محدود ڪري ٿو جنهن ۾ اهي اعلان ڪيا ويا آهن. انهي سان گڏ، اهو ياد رکڻ جي قابل آهي ته اهي ثابتيون صرف هڪ ئي قسم جي ٻين مستقلن سان برابر آهن - مختلف قسمن جي مستقلن جو مقابلو ڪرڻ سان گڏ ڪرڻ واري غلطي ٿي سگهي ٿي. 11) ڇا اينيم کي سوئچ ڪيس ۾ استعمال ڪرڻ ممڪن آهي؟ ها، توهان ڪري سگهو ٿا. ان کان علاوه، هي اينم استعمال ڪرڻ جي مکيه فائدن مان هڪ آهي. جيئن ته اينم مثالن کي هڪ عارضي مستقل ۾ گڏ ڪيو وڃي، توهان انهن کي محفوظ طور تي داخل ڪري سگهو ٿا ڪيس اندر ۽ سوئچ . ھتي ھتي ھفتي جي ڏينھن سان ڪوڊ جو ھڪڙو مثال آھي: public void developerState(DayOfWeek today){ switch(today){ case MONDAY: System.out.println("Hmmmmmmmm"); break; case TUESDAY: System.out.println("Hmmmm"); break; case FRIDAY : System.out.println("Yeahhhhhh"); break; } } Enum ۽ Switch ھڪ ٻئي کي چڱيءَ طرح سان پورو ڪن ٿا، خاص طور تي جيڪڏھن Enum ۾ مستحڪم مستقلن جو ھڪڙو ننڍڙو تعداد آھي، مثال طور، ھفتي جا ست ڏينھن، سال جا 12 مھينا، وغيره. Enum سان swith case استعمال ڪرڻ جا ٻيا مثال . 12) مڪمل اينم مثال ذريعي ٻيهر ڪيئن ڪجي؟ جيڪڏهن توهان کوليو آهي java.lang.Enum ، توهان کي خبر آهي ته values() طريقو سڀني Enum constants جو هڪ صف واپس ڪري ٿو. جيئن ته هر enum ورثي ۾ ملي ٿو java.lang.Enum ، انهن وٽ هڪ قدر () طريقو آهي . ان کي استعمال ڪندي، توهان هڪ خاص قسم جي ڳڻپ جي سڀني تسلسلن ذريعي ٻيهر ڪري سگهو ٿا. ان جا مثال ڏسو foreach loop ۽ values() طريقي سان . 13) اينيم کي سنگلٽن طور استعمال ڪرڻ جا ڪهڙا فائدا ۽ نقصان آهن؟ Enum سنگلٽن پيٽرن کي لاڳو ڪرڻ لاءِ تڪڙو شارٽ ڪٽ فراهم ڪري ٿو، ۽ جيئن ته اهو اثرائتو جاوا ڪتاب ۾ پڻ شامل آهي، اهو هڪ مشهور انتخاب آهي. پهرين نظر ۾، اينم سنگلٽن واعدو ڪندڙ ۽ ڪافي آسان آهي، جيئن ته اهو انسٽيٽيشن کي ڪنٽرول ڪري ٿو، محفوظ طور تي سيريلائيز لائق آهي، ۽ سڀ کان وڌيڪ، اينم استعمال ڪندي هڪ ٿريڊ-سيف سنگلٽن ٺاهڻ آسان آهي. توهان کي هاڻي پريشان ٿيڻ جي ضرورت ناهي ته متغير جي عدم استحڪام کي ٻيڻو جانچڻ بابت. هن طريقي کي استعمال ڪرڻ جي فائدن ۽ نقصانن بابت وڌيڪ پڙهو هتي . 14) int enumeration ۽ String enumeration patterns بدران Enum استعمال ڪرڻ جو ڪهڙو فائدو؟ جيڪڏهن توهان 5 سالن کان وڌيڪ عرصي کان پروگرام ڪري رهيا آهيو ۽ اڃا تائين JDK 1.3 يا 1.4 ۾ آهيو، ته توهان String ۽ int ڳڻپ جي نمونن کان واقف هوندا ، جيڪي استعمال ڪن ٿا عوامي جامد آخري مستقل اڳياڙيءَ جي نمائندگي ڪرڻ لاءِ معروف مقرر ڪيل مجموعن جي نمائندگي ڪرڻ لاءِ شين جو تعداد، جيئن هفتي جا ڏينهن . هتي ڪيترائي مسئلا آهن: توهان کي Enum قسم جي آزادي نه آهي، ڇاڪاڻ ته هفتي جي ڏينهن لاء ذميوار String variable ڪنهن به صوابديدي قيمت تي وٺي سگھي ٿو. ساڳئي طرح، هڪ ڳڻپيوڪر int ڪنهن به قيمت تي وٺي سگھي ٿو، ۽ مرتب ڪندڙ خوشيء سان ان کي نگلندو. ۽ استعمال ڪندي Enum ، توهان کي قسم جي حفاظت ملي ٿي جيڪا مرتب ڪندڙ توهان لاءِ چيڪ ڪري ٿي. اثرائتو جاوا ۾ هن موضوع تي ڪجهه دلچسپ خيال آهن، جيڪي سڀني جاوا ڊولپرز لاءِ پڙهڻ جي سفارش ڪئي وئي آهي. 15) String کي Enum ۾ ڪيئن بدلجي؟ اهو هڪ روزانه سوال آهي جيڪو جاوا ايپليڪيشن ڊولپمينٽ ۾ اسٽرنگ ۽ اينم استعمال ڪرڻ جي مقبوليت جي ڪري اچي ٿو . هڪ Enum کي اسٽرنگ ۾ تبديل ڪرڻ جو بهترين طريقو اهو آهي ته هڪ فيڪٽري طريقو بيان ڪيو وڃي Enum پاڻ تي جيڪو String دليلن کي وٺي ۽ ان کي اينم طور واپس آڻيندو . توهان شايد ڪيس کي نظر انداز ڪرڻ چاهيندا. ھتي ڪجھ مثال آھن تارن کي شمار ۾ تبديل ڪرڻ جا. اهو اسان کي اسان جي فهرست جي آخر ۾ آڻيندو آهي 15 سوالن ( ۽ جوابن ) بابت Enum بابت. پر ياد رکو: پڙهڻ سکڻ ڪافي ناهي، اهو صرف پهريون قدم آهي . Enums مان فائدو حاصل ڪرڻ لاءِ، ڪوشش ڪريو ته توھان پنھنجي پروجيڪٽ ۾ Enum ڪٿي استعمال ڪري سگھو ٿا - اھو توھان کي حقيقي دنيا جو تجربو ڏيندو، ۽ ھن تجربي سان توھان مثالن کان وڌيڪ سکندا، ڇاڪاڻ⁠تہ توھان کي وڌيڪ مسئلا درپيش ٿيندا، جن کي توھان وڌيڪ استعمال ڪري سگھوٿا. پيچيده ۽ تفصيلي طريقا. اينيم بابت اهي سوال توهان جي علم کي جانچڻ لاءِ ڌيان ڏيڻ جي قابل آهن، خاص طور تي جيڪڏهن توهان هڪ انٽرويو لاءِ جلدي ۾ آهيو ۽ اينيم ڪائنات ۾ تفصيلي وسرڻ لاءِ صرف وقت ناهي.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION