Final_Exam_Answers.pdf

‫آسهَى پبیبىتزم زرس ثزًبهًَِیسی پيطزفتِ‬
‫زیهبُ ‪4991‬‬
‫هْسی ػيٌؼلی‬
‫کلید سواالت‬
‫سَال ‪ .4‬اس هستٌس اصَل طزاحی‬
‫سَال ‪ . 2‬زٍ گشیٌِ آذز‬
‫اصل جبیگشیٌی ليسکَف ثيبى هیکٌس کِ ثبیس ثتَاى کالس فزسًس را جبیگشیي کالس پسر کزز ثسٍى آًکِ استفبزُکٌٌسگبى‬
‫کالس پسر ثب هطکلی هَاجِ ضًَس‪.‬‬
‫اس ایي رٍ است کِ زر هتس ‪ Override‬ضسُ کالس فزسًس ًویتَاًس حقی کِ کالس پسر اػطب کززُ است را سلت کٌس ٍ یب‬
‫هحسٍزیت ثيطتزی ًسجت کِ هحسٍزیتّبی کالس پسر ثز رفتبر هتس تحويل ًوبیس‪.‬‬
‫ثب زر ًظز گزفتي ًکتِ اٍل هتس زر کالس فزسًس زستزسی هتس پسر را ًویتَاًس کبّص زّس‪ ،‬لذا ذط ‪ 42‬ثِ زليل اًکِ زستزسی‬
‫‪ private‬زر کالس فزسًس هحسٍزتز اس زستزسی ‪ protected‬زر کالس پسر است ذطبی کبهپبیل ذَاّس زاز‪.‬‬
‫پزتبة کززى ‪ Exception‬ثزای یک هتس هحسٍزیت ثِ حسبة هیآیس‪ .‬حبل اگز هتس زر کالس فزسًس ‪ Exception‬گستززُ‪-‬‬
‫تزی اس هتس زر کالس پسر پزتبة کٌس زر ٍاقغ استفبزُ اس هتس را هحسٍزتز کززُ است‪ ٍ .‬ایي ثبس ثِ هؼٌی اصل جبیگشیٌی‬
‫ليسکَف است‪ .‬لذا سطز ‪ 44‬کِ ‪ Exception‬گستززُتزی ًسجت ثِ کالس پسر پزتبة هیکٌس ذطبی کبهپبیل هیزّس‪.‬‬
‫زقت ًوبیيس کِ اگز هتس زر فزسًس ‪ Exception‬ای ذبرج اس پسر‪-‬فزسًسی ‪ Exception‬هتس کالس پسر پزتبة هیکزز ثبس ثِ‬
‫زليل ًقط اصل ليسکَف ثزای افشٍزى هحسٍزیت ثيطتز اس پسر ذطبی کبهپبیل رخ هیزّس‪.‬‬
‫هتسّبی زیگز کالس فزسًس گًَِّبی ‪ Overload‬ضسُ هتس پسر ّستٌس ٍ ثی ّيچ هطکلی کبر هیکٌٌس‪ .‬ثزای تَظيحبت‬
‫ثيطتز ثِ اسالیس هزثَط ثِ ‪ Exceptions‬هزاجؼِ ًوبیيس‪.‬‬
‫سَال ‪ -9‬صَرت ایي سَال ػيٌب ثِ ػٌَاى کَئيش زر کالس هطزح ضسُ ثَز ‪‬‬
‫اس صَرت ثرص هزثَط ثِ هقسار زّی هتغيزّبی ثِ تزتيت ذطَط هیتَاى ًتبیج سیز را گزفت‪:‬‬
‫‪ D .4‬حتوي یک کالس ‪ Concrete‬است‪.‬‬
‫‪.2‬‬
‫‪ E‬حتوي یک کالس ‪ Concrete‬است ٍ ‪ E‬یک ‪ D‬است‪(.‬راثطِ ‪ ، IS_A‬پس ‪ E‬فزسًس ‪ D‬است‪).‬‬
‫‪ E .9‬فزسًس ‪ C‬است‪.‬‬
‫‪ E .1‬فزسًس ‪ B‬است‪.‬‬
‫‪ B .5‬فزسًس ‪ A‬است‪.‬‬
‫حبل اس ثرص زٍم یؼٌی ذطَطی کِ هَجت ذطب هیضًَس هیتَاى ًتبیج سیز را ثِ تزتيت گزفت‪:‬‬
‫‪ D .4‬فزسًس ‪ً C‬يست‪.‬‬
‫‪ C .2‬فزسًس ‪ً D‬يست‪.‬‬
‫‪ B .9‬فزسًس ‪ً D‬يست‪.‬‬
‫‪ D .1‬فزسًس ‪ً B‬يست‪.‬‬
‫حبل اس ػجبرات ثبال هیتَاى ًتبیج سیز را استسالل کزز‪.‬‬
‫‪ E‬فزسًس ‪ D,B,C‬است ٍ ‪ D‬کالس کبًکزیت ثَزُ ٍ ثب ‪ C ٍ B‬راثطِ پسر فزسًسی ًسارز‪ .‬لذا چَى زر جبٍا پسر فزسًسی‬
‫چٌسگبًِ ثيي کالسّب ٍجَز ًسارز لذا تٌْبی ‪ D‬یک کالس است ٍ حتوي ‪ C ٍ B‬ثِ صَرت ‪ interface‬تؼزیف ضسُاًس‪.‬‬
‫چَى ‪ B‬فزسًس ‪ A‬است ٍ ‪ B‬ثِ صَرت ‪ interface‬است لذا ‪ً A‬يش فقط هيتَاًس ‪ Interface‬ثبضس‪.‬‬
‫لذا گشیٌِّبی ج‪ ،‬ز‪ ،ُ ،‬ح ًبزرست اًس‪ً .‬وَزار کالسّبی سیز ٍ چٌس حبلت زیگز هیتَاًس حبلتّبی هوکي اس رٍاثط ثيي‬
‫کالسّب ثبضس‪.‬‬
‫حبلت الف)‬
‫حبلت ة)‬
‫سَال ‪ -1‬کس سیز هیتَاًس کالس ذَاستِ ضسُ ثبضس‪.‬‬
‫سَال ‪– 5‬‬
‫گشیٌِ ة)‬
‫‪ null‬هیتَاًس ثِ ػٌَاى کليس یب هقسار زر ‪ Map‬استفبزُ ضَز‪( .‬اگز قزار ثَز کِ ایي هسئلِ هَجت ذطب ضَز کِ ذطبی حيي‬
‫اجزا رخ هیزاز کِ قجال گشیٌِ ذطبی حيي اجزا ثزای ػسم ایجبز چٌيي ضبئجِای اس صَرت سَال حذف ضسُ ثَز‪).‬‬
‫ًکتِ اصلی ‪ Map‬پيبزُسبسی سبذتبر ‪ Key-Value‬است کِ زر آى هقبزیز ثب کليسّبی یکتب قبثل زستزسی ّستٌس‪ .‬لذا ّوَارُ‬
‫اذزیي هقسارزّی ثزای یک کليس زر ‪ Map‬جبیگذاری ذَاّس ضس‪.‬‬
‫کليسّبی هرتلفی کِ ثِ صَرت ‪ Integer‬ثِ ‪ Map‬اظبفِ ضسُاًس ثِ زليل ذبصيت ‪ Autoboxing‬جبٍا ّوگی ثِ کالس‪-‬‬
‫ّبی ّوجٌس ‪ Integer‬تجسیل ذَاٌّس ضس کِ پيبزُسبسی هتس )(‪ equals‬آى ثزای هقسار ‪ Primitive‬زاذل آى ثِ زرستی‬
‫صَرت گزفتِ است‪ .‬لذا ثِ ػٌَاى کليس هقسار ػسزی زاذل ّز ضی هجٌب ذَاّس ثَز‪ .‬یکتبیی ٍ ثزاثز ثَزى کليسّب ثب‬
‫)(‪ equals‬ثزرسی هیضَز‪.‬‬
‫زقت ًوبیيس کِ ثزای ‪ّ Wrapper Class‬ب استفبزُ اس == ثِ )(‪ equals‬اس اضتجبّبت رایج ثزًبهِ ًَیسبى است‪.‬‬
‫یؼٌی ػجبرت‬
‫)‪new Integer(2)==new Integer(2‬‬
‫هقسار ‪ ٍ False‬ػجبرت‬
‫;))‪new Integer(2).equals(new Integer(2‬‬
‫هقسار ‪ True‬زارز‪.‬‬
‫سَال ‪ -6‬اس کس هتس هیتَاًس حسس سز کِ ّسف هتس حذف اضيبی ‪ student‬ثب ًبم ٍ ضٌبسِ ‪ null‬اس ليست است‪ .‬ثب ایي‬
‫فزض هیتَاًس پيبزُسبسی ‪ Test‬ثب استفبزُ اس ‪ Annotation‬ثزای آسهَى چْبرگزٍُ ثِ ضکل سیز ارایِ زاز‪:‬‬
‫کِ ًتيجِ اجزای آسهَى ثِ صَرت سیز ذَاّس ثَز‪.‬‬
‫حبل اگز کس اصلی را ثِ صَرت سیز تغييز زّين‪:‬‬
‫کِ ثزای آى توبهی آسهَىّب ثب هَفقيت اجزا هیضًَس‪:‬‬
‫گزٍُّبی آسهَى هتوبیش زیگزی ًيش قبثل تطريص است ‪ .‬استفبزُ اس پسر‪-‬فزسًسی ثزای ًَضتي ‪ّ TestCase‬ن هجبس ذَاّس‬
‫ثَز‪.‬‬
‫سَال ‪-7‬‬
‫ّز چٌس کِ هیتَاى تغييزات ثيطتزی ثز رٍی ایي کس اًجبم زاز ٍلی یک ثبسآرایی حساقلی ثزای چٌيي کسی ثِ صَرت سیز‬
‫است‪:‬‬
‫کالسّبی جسیس سیز تؼزیف ضًَس‪.‬‬
‫ٍ کالسّبی قجلی ثِ صَرت سیز تغييز ًوبیٌس‪:‬‬
‫ثبیس زقت ًوَز کِ ضبیس هیضس هتسّبی هزثَط ثِ ‪ Vallidation‬را زر قبلت یک پسر هطتزک ثزای زٍ کالس استفبزُ کٌٌسُ‬
‫ًيش تؼزیف کزز ٍلی چٌيي پسرفزسًسی اس زیسگبُ ضیگزایی زالیل کبفی ًسارز‪ .‬پس چٌيي هتسّبیی کِ ٍاثستگی ذبصی ثِ‬
‫کالسی ًسارًس ٍ هبّيتب ثِ صَرت ‪ stateless‬یؼٌی ثسٍى حبلت ّستٌس ًجبیس زر قبثل کالسّبی کبًکزیت تؼزیف ضًَس‪.‬‬
‫ثْتز است چٌيي هتسّبی ثِ کالسّبیی ثب هتسّبی ثسٍى حبلت استبتيک گٌجبًسُ ضًَس‪ .‬ثِ چٌيي کالسّبیی کالسّبی ‪Util‬‬
‫یب ‪ Helper‬هیگَیٌس‪ .‬کالسّبیی کِ فبقس حبلت ثَزُ(پس اس لحبظ تئَریک تؼزیف آًْب چٌساى کبر زرستی ًيست) ٍ تٌْبی‬
‫ضبهل رفتبرّبی استبتيک ّستٌس ٍ ثب ٍجَز ظؼف تئَریک ثزای تؼزیف آىّبی ػوال هیتَاى رفتبرّبی ثسٍى حبلتی کِ جبی‬
‫هطرصی ثزای جبیٌوبیی ًسارًس را زر ذَز جبی زٌّس‪ .‬زر ضٌبسبیی ٍ طزاحی چٌيي کالسّبیی ّويطِ احتيبط کٌيس‪ .‬حتی‬
‫پزٍصُّبی ثشرگ ًيش ثيص اس یک یب چٌس کالس اس ایي ًَع ًجبیس زاضتِ ثبضٌس‪.‬‬
‫ثبس آرایی اًجبم ضسُ اهکبى ثبسثکبرگيزی زر کس را ثسيبر ثبال هیثزز‪ .‬رٍشّبی ثبسآرایی استفبزُ ضسُ ػجبرتٌس اس ‪:‬‬
‫‪Extract method, extract class‬‬
‫سَال ‪ -8‬گشیٌِ صحيح ز) است‪.‬‬
‫ّوبًطَر کِ هيساًيس ‪ CountDownLatch‬یب ظبهي پبیيي ضوبر تب سهبًی کِ ثِ تؼساز تؼزیف ضسُ هتس )(‪ countdown‬رٍ‬
‫آى صسا سزُ ًطسُ ثبضس‪ ،‬زر ‪ aWait‬هٌتظز هیهبًس‪ .‬زر گشیٌِ زال ثب چبح ضسى ‪ salam‬هطرص است کِ ظبهي پبیيي‬
‫ضوبر هٌتظز فزاذَاًی سِ زفؼِ ‪ countdown‬است ٍلی ثؼس اس یک فزاذَاًی اًتظبر زر ‪ aWait‬ظبّزى ثِ اتوبم رسيسُ‬
‫است ٍ ‪ khodafiz‬چبح ضسُ است‪.‬‬
‫ثِ گشیٌِ الف زقت کٌيس‪.‬‬
‫ثؼس اس ‪ 9‬ثبر فزاذَاًی ‪ countdown‬اجزا ثِ ثشی رسيسُ است ٍ ‪ salam‬چبح ضسُ است ٍلی قجل اس رسيسى اجزا ثِ‬
‫‪ aWait‬کِ قبػستي اًتظبری زر پی ًساضت(چَى پبیيي ضوبر ثِ تؼساز کبفی ‪ countdown‬ضسُ است) اجزا اس ثشی گزفتِ‬
‫ضسُ ٍ ثِ ضٌگَل زازُ ضسُ است‪.‬‬
‫زر ّويي گشیٌِ ًيش زقت ًوبیيس کِ ثزُّبی ثز ّز تزتيت زلرَاّی هستقل اس تزتيت استبرت ًدّبی هزثَط ثِ آىّبی هی‪-‬‬
‫تَاًٌس اس پززاسًسُ اجزا ثگيزًس ٍ زر ذزٍجی چبح ضًَس‪.‬‬
‫زر گشیٌِ ة) سِ ثزُ پطت سز ّن اجزا گزفتِاًس ٍ ثؼس ثشی اجزا گزفتِ است کِ ثزای ظبهي پبیيي ضوبرش هٌتظز ًوبًسُ ٍ‬
‫ثؼس اس ‪ salam‬سزیؼي ‪ khodafiz‬چبح ضسُ است‪ .‬ثؼس اس ثشی زٍ ثزُ زیگز اجزا گزفتِاًس‪.‬‬
‫گشیٌِ ج) حبلت سبزُ ثسٍى زر ًظز گزفتي ٍظؼيت رقبثت زر ّوزًٍسی است‪.‬‬
‫سَال ‪ 9-‬کس سیز ثزًبهِ هَرز ًظز را ًطبى هیزّس‪:‬‬
‫زقت ًوبیيس کِ ًَضتي‪ setter‬ثزای ‪ Enumeration‬هؼٌی ًساضتِ ٍ هَجت رذساز ذطب است‪.‬‬
‫زازگبى هؼبزل هصَة فزٌّگستبى سثبى فبرسی ثزای ‪ Database‬است‪.‬‬
‫ضجيِ ایي کس زر کس ًوًَِ ثبسی ‪ Seafight‬ارایِ ضسُ ثَز‪ values() .‬هتس ظوٌی است کِ زر توبهی ‪ّEnumeration‬ب‬
‫قبثل زستزسی است‪.‬‬
‫ضبز ٍ سالهت ٍ هَفق ٍ سزثلٌس ثبضيس!‬
‫ػيٌؼلی‬