فهرست مندرجات[پنهان شدن][نمایش]
- 1. برنامه نویسی شی گرا دقیقا چیست؟
- 2. چرا OOP ضروری است؟
- 3. اصول OOPS چه مزایایی را ارائه می دهد؟
- 4. ارکان مفهوم OOPs چیست؟
- 5. کلاس دقیقاً چیست؟
- 6. شی دقیقاً چیست؟
- 7. محدودیت های OOP چیست؟
- 8. ارث چیست؟
- 9. کپسولاسیون دقیقاً چیست؟
- 10. چندشکلی چیست؟
- 11. انتزاع دقیقاً چیست؟
- 12. دقیقاً اضافه بار روش چیست؟
- 13. روش overriding دقیقا چیست؟
- 14. سوپرکلاس دقیقاً چیست؟
- 15. زیر کلاس دقیقاً چیست؟
- 16. چند شکلی استاتیک دقیقاً چیست؟
- 17. چندشکلی پویا دقیقاً چیست؟
- 18. مفهوم سازنده را شرح دهید.
- 19. اصلاح کننده های دسترسی دقیقا چیست؟
- 20. تخریب کننده دقیقا چیست؟
- 21. وراثت ترکیبی دقیقاً چیست؟
- 22. وراثت سلسله مراتبی دقیقاً چیست؟
- 23. اشکالات ارث چیست؟
- 24- استثنا دقیقا چیست؟
- 25. رسیدگی به استثنا دقیقاً چیست و چه مزایایی دارد؟
- 26. توابع مجازی دقیقاً چیست؟
- 27. تابع دوست دقیقا چیست؟
- 28. زباله جمع آوری دقیقا چیست؟
- 29. کوپلینگ دقیقا چیست؟
- 30. انسجام دقیقاً چیست؟
- 31. یک بلوک try/catch را توصیف کنید.
- 32. یک بلوک نهایی را توصیف کنید.
- 33. رابط کاربری دقیقاً چیست؟
- 34. ترکیب دقیقا چیست؟
- 35. زنجیره سازی سازنده دقیقاً چیست؟
- نتیجه
یکی از تاثیرگذارترین پارادایم های برنامه نویسی OOPs یا برنامه نویسی شی گرا نام دارد. به جای توابع و فرآیندها، بر کلاس ها و اشیاء تأکید دارد.
هدف اصلی آن اتصال داده ها و چیزها است تا کار با آنها ساده تر شود. هر شی در OOP ها از کدهایی به شکل رویه ها یا روش ها و داده ها به شکل فیلدها تشکیل شده است.
زبان هایی مانند C++، Objective C، Python، Perl و Java از محبوب ترین زبان های شی گرا هستند. زبانهای برنامه نویسی.
درک بیشتر در مورد این امر بسیار مهم است زیرا سوالات مصاحبه بسیار معمولی هستند. اکثر شرکت ها به دنبال مهندسانی هستند که با روش ها و الگوهای شی گرا آشنا باشند. بنابراین، اگر قصد شرکت در یک مصاحبه را دارید، باید به ایده های OOP مسلط باشید.
سوالات مختلف مصاحبه برنامه نویسی شی گرا از سطوح مبتدی تا تخصصی در این پست نشان داده خواهد شد. بنابراین می توانید هر سطحی از مصاحبه را پشت سر بگذارید و موقعیت رویایی خود را تضمین کنید.
1. برنامه نویسی شی گرا دقیقا چیست؟
برنامه نویسی شی گرا (OOPs) بر اساس اشیاء واقعی است نه فقط توابع و فرآیندها. کلاس ها برای محصولات فردی ایجاد می شود.
وراثت، چندشکلی و پنهان سازی نمونه هایی از مفاهیم دنیای واقعی هستند که OOP ها در برنامه نویسی گنجانده شده اند. همچنین اتصال داده ها و کدها را امکان پذیر می کند.
2. چرا OOP ضروری است؟
دلایل مختلفی برای ارجح بودن OOP وجود دارد، با این حال، مهمترین آنها به شرح زیر است:
- OOPs، به افراد اجازه می دهد تا به راحتی نرم افزار را درک کنند، حتی اگر با پیاده سازی آن آشنا نباشند.
- اوه، خوانایی کد، قابل فهم بودن، و قابلیت نگهداری را ده برابر افزایش دهید.
- با استفاده از OOP، حتی برنامه های بسیار بزرگ را می توان به سادگی ساخت و کنترل کرد.
3. اصول OOPS چه مزایایی را ارائه می دهد؟
- OOPS، اشیاء برنامه نویسی اشیاء دنیای واقعی را شبیه سازی می کند، پیچیدگی را کاهش می دهد و وضوح برنامه را افزایش می دهد.
- اشیاء را می توان به طور مکرر در بسیاری از برنامه ها مورد استفاده قرار داد.
- هر شی یک موجودیت مجزا ایجاد می کند که عملیات داخلی آن مستقل از سایر اجزای سیستم است.
- با معرفی چند شیء جدید و به روز رسانی چند مورد از قبل موجود، امکان افزودن عملکردهای جدید یا انطباق با شرایط متغیر عملیاتی وجود دارد.
- فرآیندها یا نمایش داده های یک برنامه OOPs می توانند به راحتی دستخوش تنظیمات کوچک شوند.
4. ارکان مفهوم OOPs چیست؟
ارکان اصلی OOP به شرح زیر است:
وراثت: کلاس ها را قادر می سازد تا ویژگی های یک کلاس دیگر را به ارث ببرند.
کپسوله سازی: این به عنوان یک ویژگی شی تعریف می شود که اطلاعات مهم را پنهان می کند. این داده ها را از اعضای کلاس پنهان نگه می دارد. مشخصکنندهها نحوه دسترسی به ویژگی شی را در کد توضیح میدهند.
پلی مورفیسم: این به شما امکان می دهد یک فعالیت واحد را به چند روش انجام دهید. این از طریق واسط ها انجام می شود، که در آن ما یک رابط را اعلام می کنیم که متعاقبا چندین بار پیاده سازی می شود.
انتزاع - مفهوم - برداشت: شما می توانید از این تابع برای مخفی کردن اطلاعات مهم از دنیای خارج و ارائه تنها حقایق ضروری استفاده کنید.
5. کلاس دقیقاً چیست؟
کلاس نمونه اولیه ای است که از اشیا در حالت های مختلف و با رفتارهای متفاوت تشکیل شده است. تعدادی متد دارد که توسط اشیاء آن کلاس به اشتراک گذاشته می شود.
6. شی دقیقاً چیست؟
یک شی یک موجودیت در دنیای واقعی است که به عنوان واحد اساسی OOP ها مانند صندلی، گربه یا سگ عمل می کند. اشیاء مختلف حالت ها، ویژگی ها و کنش های مختلفی دارند.
7. محدودیت های OOP چیست؟
- اندازه بزرگتر از سایر برنامه ها است.
- نیاز به عادت کردن دارد.
- انواع خاصی از مشکلات نیازی به آن ندارند.
- ایجاد آن کار فشرده ای بود و در مقایسه با سایر برنامه ها، کندتر عمل می کند.
8. ارث چیست؟
مفهومی به نام وراثت به اشتراک گذاری ساختار و رفتار یک کلاس توسط کلاس دیگر اشاره دارد. هنگامی که وراثت برای یک کلاس منفرد اعمال می شود، به آن ارث واحد می گویند. هنگامی که به کلاس های زیادی بستگی دارد، به آن ارث چندگانه می گویند.
9. کپسولاسیون دقیقاً چیست؟
ایده OOP ها شامل کپسولاسیون نیز می شود. ترکیب داده ها و تکنیک های دستکاری داده ها را توصیف می کند. علاوه بر این، به جلوگیری از دسترسی مستقیم به برخی از قسمتهای یک شی کمک میکند.
10. چندشکلی چیست؟
در زبان های OOP، چندشکلی یک مفهوم اساسی است. نشان می دهد که چگونه کلاس های مختلف ممکن است یک رابط را به اشتراک بگذارند. این کلاس ها همگی قادر به پیاده سازی رابط منحصر به فرد هستند.
11. انتزاع دقیقاً چیست؟
انتزاع یک مفهوم برنامه نویسی شی گرا (OOPs) است که برای ایجاد ساختار اشیاء دنیای واقعی استفاده می شود. این فقط مهم ترین ویژگی ها را "نمایش" می دهد و اطلاعات اضافی را از دنیای بیرون "پنهان می کند". هدف اصلی انتزاع محافظت از افراد در برابر اطلاعات بیهوده است.
12. دقیقاً اضافه بار روش چیست؟
ممکن است دو یا چند روش یک نام داشته باشند. با این حال، آنها باید دارای پارامترهای متمایز، تعداد متفاوت پارامترها، انواع متمایز یا هر دو باشند. اینها به عنوان روشهای بارگذاری شده شناخته میشوند و این ویژگی به عنوان روش اضافه بار شناخته میشود.
13. روش overriding دقیقا چیست؟
برنامه نویسی شی گرا شامل ایده غلبه بر روش است. این یک ویژگی زبانی است که به یک کلاس فرعی یا کلاس فرزند اجازه میدهد یک پیادهسازی سفارشی از روشی را ارائه دهد که یکی از سوپرکلاسها یا کلاسهای والد آن قبلاً ارائه میکند.
14. سوپرکلاس دقیقاً چیست؟
سوپرکلاس که اغلب به عنوان کلاس پایه شناخته می شود، نوعی از کلاس است که به عنوان والد کلاس یا کلاس های دیگر عمل می کند. به عنوان مثال، کلاس خودرو دارای یک زیر کلاس به نام Vehicle است.
15. زیر کلاس دقیقاً چیست؟
یک زیر کلاس، یک زیر کلاس از یک کلاس دیگر است. به عنوان مثال یک ون یک زیر کلاس خودرو یا کلاس مشتق شده است.
16. چند شکلی استاتیک دقیقاً چیست؟
در زمان کامپایل، نوعی از چندشکلی به نام چندشکلی استاتیک (پیوند استاتیک) رخ می دهد. اضافه بار روش نوعی پلی مورفیسم زمان کامپایل است.
17. چندشکلی پویا دقیقاً چیست؟
نوعی از چندشکلی که در زمان اجرا حل میشود، چندشکلی زمان اجرا نامیده میشود که به نام پلیمورفیسم پویا (پیوند دینامیک) نیز شناخته میشود. غلبه بر روش ها، نمونه ای از چندشکلی زمان اجرا است.
18. مفهوم سازنده را شرح دهید.
سازنده یک متد خاص از یک کلاس است که به طور خودکار هنگام ایجاد یک نمونه کلاس فراخوانی می شود. وقتی به کلاس دسترسی پیدا می کنید، با همان نام کلاس ساخته می شود و تمام اعضای آن را مقدار دهی اولیه می کند. مشخصات اولیه سازنده به شرح زیر است:
هیچ نوع بازگشتی برای سازنده ها وجود ندارد.
اضافه بار سازنده ها امکان پذیر است.
نیازی به تعیین سازنده نیست. NET Framework این کار را به صورت خودکار انجام می دهد.
19. اصلاح کننده های دسترسی دقیقا چیست؟
در زبان های شی گرا، کلمات کلیدی، اصلاح کننده های دسترسی یا مشخص کننده های دسترسی هستند. این به پیکربندی کلاس ها، متدها و دسترسی سایر اعضا کمک می کند.
20. تخریب کننده دقیقا چیست؟
تخریبگر روشی برای آزادسازی منابع اختصاص داده شده به یک شی است. هنگامی که یک شی از بین می رود، این روش به طور خودکار فراخوانی می شود.
21. وراثت ترکیبی دقیقاً چیست؟
وراثت ترکیبی نوعی وراثت است که از اختلاط چندین شکل وراثت مانند تک، چندگانه و غیره ایجاد می شود.
22. وراثت سلسله مراتبی دقیقاً چیست؟
چندین زیر کلاس در شرایط وراثت سلسله مراتبی از یک کلاس والد ارث می برند. نوعی وراثت که در آن طبقات متعددی از یک والد یا کلاس پایه نشات میگیرند، به عنوان وراثت سلسله مراتبی شناخته میشود. به عنوان مثال، کلاس میوه می تواند شامل زیر کلاس هایی مانند سیب، انبه، موز، گیلاس و غیره باشد.
23. اشکالات ارث چیست؟
این روند اجرا را طولانی و پیچیده می کند. همچنین نیاز به جابجایی بین کلاس های مختلف دارد. کلاس های والدین و فرزند همیشه به طور جدایی ناپذیری به هم مرتبط هستند.
اصلاحات در برنامه درسی نیاز به بازنگری برای کلاس والدین و کودک دارد. وراثت باید با دقت اجرا شود وگرنه نتایج اشتباه خواهد بود.
24- استثنا دقیقا چیست؟
یک استثنا حادثه ای است که در عملکرد معمول کد اختلال ایجاد می کند. برای ادامه اجرا، می توانید این استثناها را در جاوا مدیریت کنید. در جاوا، انواع مختلفی از استثناهای از پیش تعریف شده وجود دارد، و مدیریت استثنا برای کنترل استثناهای مطرح شده با استفاده از بلوک های try-catch ارائه می شود.
25. رسیدگی به استثنا دقیقاً چیست و چه مزایایی دارد؟
مهم ترین روش در جاوا برای مقابله با خرابی های زمان اجرا غیرمنتظره، مدیریت استثنا است. این به شما اجازه می دهد تا خطاهای زمان اجرا را که در طول اجرای برنامه ایجاد می شوند، کنترل کنید.
مزایای مدیریت استثنا شامل توانایی حفظ جریان برنامه منظم در هنگام مدیریت استثناها است. به عنوان مثال، اگر خطایی در یک بخش از برنامه اتفاق بیفتد، اگر استثنا را با بلوک های try-catch مدیریت کنیم، هیچ تاثیری بر باقیمانده برنامه نخواهد داشت.
26. توابع مجازی دقیقاً چیست؟
توابع مجازی نیز در توابع کلاس والد گنجانده شده اند و توسط زیر کلاس لغو می شوند. این روال ها به دستیابی به چند شکلی زمان اجرا کمک می کنند.
27. تابع دوست دقیقا چیست؟
تابع دوست تابعی است که به یک کلاس تعلق دارد و اجازه دسترسی به داده های عمومی، خصوصی یا محافظت شده آن را دارد. اگر تابع خارج از کلاس تعریف شده باشد، امکان بازیابی این داده وجود ندارد. کلیدواژه های کنترل دسترسی خصوصی، عمومی و محافظت شده هیچ ارتباطی با اعلان دوست ندارند، که می تواند در هر جایی از اعلان کلاس ایجاد شود.
28. زباله جمع آوری دقیقا چیست؟
جمع آوری زباله (GC) یک عنصر از زبان های برنامه نویسی مانند C# و جاوا است که به عنوان یک سیستم بازیابی حافظه عمل می کند. موتور جمعآوری زباله (GC) جزئی از یک زبان برنامهنویسی است که اجازه میدهد فضای حافظه خودکار برای اشیایی که برنامه دیگر از آن استفاده نمیکند، آزاد شود.
29. کوپلینگ دقیقا چیست؟
به موقعیت هایی اشاره دارد که در آن طبقات مختلف بر یکدیگر تکیه می کنند و دانش را به اشتراک می گذارند. یک ارتباط قوی زمانی اتفاق می افتد که یک کلاس اطلاعات دقیقی از کلاس دیگر داشته باشد. می توانید با استفاده از اصلاح کننده های دسترسی، قابلیت مشاهده کلاس ها، متدها یا متغیرها را مشخص کنید. اینترفیس ها برای ایجاد کوپلینگ ضعیف تر استفاده می شوند.
30. انسجام دقیقاً چیست؟
روشی که یک جزء یک فعالیت خاص را انجام می دهد به عنوان انسجام آن شناخته می شود. یک رویکرد قوی و منسجم به سادگی وظیفه تعریف شده را انجام می دهد، در حالی که یک روش ضعیف و منسجم، تکلیف را به چندین کار کوچکتر تقسیم می کند و سپس آنها را کامل می کند.
بسته Java.io کاملا منسجم است، اما بسته java.util اینطور نیست.
31. یک بلوک try/catch را توصیف کنید.
هنگامی که برنامه ای به دلیل کد یا داده های نادرست با خطا مواجه می شود، "try" و "catch" نحوه مدیریت آن را نشان می دهد. یک بلوک try نام بخشی از کد است که در صورت بروز استثناء وجود دارد. یک بلوک catch برای گرفتن و مقابله با استثناهای بلوکهای آزمایشی استفاده میشود.
32. یک بلوک نهایی را توصیف کنید.
قسمت کاری کد کلمه کلیدی try در آخر نشان داده شده است. کدی را مشخص می کند که همیشه بلافاصله پس از آزمایش اجرا می شود و هر بلوک catch قبل از تکمیل روش اجرا می شود. بلوک نهایی همیشه اجرا می شود، چه استثنایی پرتاب شود یا گرفته شود.
33. رابط کاربری دقیقاً چیست؟
یک رابط ترکیبی از روش های انتزاعی و یک نوع داده تعریف شده توسط کاربر است. یک کلاس یک رابط را پیاده سازی می کند و توابع انتزاعی رابط را به ارث می برد.
یک کلاس خصوصیات و رفتارهای یک شی را نشان می دهد، در حالی که یک رابط شامل رفتارهایی است که یک کلاس پیاده سازی می کند. رابط نشان دهنده "چی" است، در حالی که کلاس "چگونه" را منتقل می کند.
34. ترکیب دقیقا چیست؟
از ترکیب می توان برای دستیابی به یک اتصال استفاده کرد. این نشان می دهد که یک پیوند شیء قوی بین اشیاء وابسته و مستقل، بر خلاف تجمع. شی وابسته در این شرایط وجود ندارد و اگر شی والد پاک شود حذف خواهد شد.
35. زنجیره سازی سازنده دقیقاً چیست؟
زنجیره سازی سازنده تکنیکی برای فراخوانی یک سازنده از سازنده دیگر در رابطه با مرجع شی فعلی است. دو گزینه وجود دارد:
- سازنده در کلاس فعلی را می توان با استفاده از کلمه کلیدی “this” ارجاع داد.
- کلمه کلیدی "super" برای فراخوانی سازنده از کلاس پایه استفاده خواهد شد.
نتیجه
برنامه نویسی شی گرا مستلزم تفکر در مورد ساختار برنامه و آماده سازی قبل از زمان است. بررسی نحوه تقسیم الزامات به کلاسهای اساسی و قابل استفاده مجدد که میتوانند برای ایجاد نمونههایی از چیزها استفاده شوند.
به طور کلی، در آغوش گرفتن OOP بهبود را فراهم می کند ساختارهای داده و قابلیت استفاده مجدد، که باعث صرفه جویی در زمان در طولانی مدت می شود. دیدن مجموعه مصاحبه هاشدورک برای کمک به آماده سازی مصاحبه
پاسخ دهید