Мазмуну[Жашыруу][Көрсөтүү]
- 1. Объектке багытталган программалоо деген эмне?
- 2. Эмне үчүн OOP керек?
- 3. OOPS принциптери кандай артыкчылыктарды берет?
- 4. ООП концепциясы кандай түркүктөрдөн турат?
- 5. Класс деген эмне?
- 6. Объект деген эмне?
- 7. ООПтун чектөөлөрү кандай?
- 8. Мурас деген эмне?
- 9. Инкапсуляция деген эмне?
- 10. Полиморфизм деген эмне?
- 11. Абстракция деген эмне?
- 12. Методду ашыкча жүктөө деген эмне?
- 13. Методду жокко чыгаруу деген эмне?
- 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. ООП концепциясы кандай түркүктөрдөн турат?
Төмөндө OOP негизги мамылары болуп саналат:
тукум куучулук: Бул класстарга башка класстын атрибуттарын мурастоого мүмкүнчүлүк берет.
Encapsulation: Бул критикалык маалыматты жашырган объект касиети катары аныкталат. Бул маалыматтарды класстын мүчөлөрүнөн жашырат. Спецификаторлор объекттин атрибутуна код менен кантип кирерин сүрөттөйт.
Полиморфизм: Бул бир ишти бир нече жол менен аткарууга мүмкүндүк берет. Бул интерфейстер аркылуу ишке ашат, анда биз бир интерфейсти жарыялайбыз, ал кийинчерээк бир нече жолу ишке ашат.
Абстракция: Сиз бул функцияны тышкы дүйнөдөн критикалык маалыматты жашыруу жана маанилүү фактыларды гана көрсөтүү үчүн колдоно аласыз.
5. Класс деген эмне?
Класс - бул ар кандай штаттардагы жана ар кандай жүрүм-турумдагы объекттерден турган прототиби. Анын ошол класстагы объекттер тарабынан бөлүшүлгөн бир катар ыкмалары бар.
6. Объект деген эмне?
Объект - бул отургуч, мышык же ит сыяктуу OOPтин негизги бирдиги катары кызмат кылган реалдуу дүйнө объектиси. Ар кандай объекттер ар кандай абалдарга, касиеттерге жана аракеттерге ээ.
7. ООПтун чектөөлөрү кандай?
- Өлчөмү башка колдонмолорго караганда чоңураак.
- Бул бир аз көнүүнү талап кылат.
- Кээ бир көйгөйлөр аны талап кылбайт.
- Аны түзүү эмгекти көп талап кылган жана башка колдонмолорго салыштырмалуу жайыраак иштейт.
8. Мурас деген эмне?
Мурас деп аталган түшүнүк класстын калыптанган түзүлүшүн жана жүрүм-турумун башка класс менен бөлүшүүнү билдирет. Мурас бир класска колдонулса, ал бирдиктүү мурас деп аталат; көп класстарга көз каранды болгондо, ал бир нече тукум куучулук деп аталат.
9. Инкапсуляция деген эмне?
OOP идеясы инкапсуляцияны да камтыйт. Бул маалыматтарды аралаштыруу жана маалыматтарды манипуляциялоо ыкмаларын сүрөттөйт. Кошумчалай кетсек, ал объекттин айрым бөлүктөрүнө түз кирүүнү алдын алууга жардам берет.
10. Полиморфизм деген эмне?
OOP тилдеринде полиморфизм негизги түшүнүк болуп саналат. Бул ар кандай класстар интерфейсти кантип бөлүшө аларын көрсөтөт. Бул класстардын бардыгы уникалдуу интерфейсти ишке ашырууга жөндөмдүү.
11. Абстракция деген эмне?
Абстракция - бул реалдуу дүйнө объекттеринин структурасын түзүү үчүн колдонулган объектиге багытталган программалоо (OOPs) концепциясы. Ал эң маанилүү сапаттарды гана "көрсөтөт" жана сырткы дүйнөдөн бөтөн маалыматты "жашырат". Абстракциянын негизги максаты - адамдарды керексиз маалыматтан коргоо.
12. Методду ашыкча жүктөө деген эмне?
Эки же андан көп процедуралар бирдей аталышка ээ болушу мүмкүн. Бирок, алар өзүнчө параметрлерге, ар кандай сандагы параметрлерге, айырмаланган түргө же экөөнө тең болушу керек. Булар ашыкча жүктөлгөн ыкмалар деп аталат, ал эми өзгөчөлүк ыкманы ашыкча жүктөө деп аталат.
13. Методду жокко чыгаруу деген эмне?
Объектке багытталган программалоо методду жокко чыгаруу идеясын камтыйт. Бул субкласска же бала класска анын суперкласстарынын же ата-энелер класстарынын бири камсыз кылган методдун ылайыкташтырылган ишке ашыруусун сунуштаган тил өзгөчөлүгү.
14. Суперкласс деген эмне?
Көбүнчө базалык класс катары белгилүү болгон суперкласс, башка класстын же класстын ата-энеси катары иш алып барган класстын бир түрү. Мисалы, Car классынын Унаа деп аталган субклассы бар.
15. Класс деген эмнени билдирет?
Класс башка класстын подклассы болуп саналат. Микроавтобус, мисалы, Унаанын субклассы же туунду классы.
16. Статикалык полиморфизм деген эмне?
Компиляция учурунда статикалык полиморфизм (статикалык байланыш) деп аталган полиморфизмдин түрү орун алат. Методду ашыкча жүктөө компиляция убактысынын полиморфизминин бир түрү.
17. Динамикалык полиморфизм деген эмне?
Аткаруу убактысында чечилүүчү полиморфизмдин бир түрү динамикалык полиморфизм (динамикалык байланыш) деп да белгилүү болгон аткаруу убактысы полиморфизми деп аталат. Методдорду жокко чыгаруу - бул иштөө убактысынын полиморфизминин иллюстрациясы.
18. Конструктор түшүнүгүн сүрөттөп бергиле.
Конструктор класстын үлгүсү түзүлгөндө автоматтык түрдө чакырылуучу класстын белгилүү ыкмасы. Сиз класска киргенде, ал класстын аталышы менен түзүлөт жана анын бардык мүчөлөрүн инициализациялайт. Конструктордун негизги мүнөздөмөлөрү төмөнкүлөр:
Конструкторлор үчүн кайтаруу түрү жок.
Конструкторлорду ашыкча жүктөө мүмкүн.
Конструкторду көрсөтүү талап кылынбайт; NET Framework муну автоматтык түрдө жасайт.
19. Кирүү модификаторлору кандай?
Объектке багытталган тилдерде ачкыч сөздөр кирүү модификаторлору же мүмкүндүк алуу спецификаторлору болуп саналат. Ал класстарды, методдорду жана башка мүчөлөрдүн жеткиликтүүлүгүн конфигурациялоого жардам берет.
20. Деструктор деген эмне?
Деструктор - объектке дайындалган ресурстарды чыгаруу ыкмасы. Объект жок кылынганда, бул ыкма автоматтык түрдө чакырылат.
21. Гибриддик тукум куучулук деген эмне?
Гибриддик тукум куучулук – бир, көп ж.
22. Иерархиялык тукум куучулук деген эмне?
Иерархиялык тукум куучулук кырдаалында бир нече субкласстар ата-энелик класстан мурасташат. Көптөгөн класстар бир ата-энеден же базалык класстан келип чыккан тукум куучулуктун бир түрү иерархиялык мурас катары белгилүү. Мисалы, мөмө классы "алма", "манго", "банан", "алча" ж.б.
23. Мураскорлуктун кандай кемчиликтери бар?
Бул аткаруу процессин узартат жана татаалдаштырат. Ал ошондой эле ар кандай класстардын ортосунда которууну талап кылат. Ата-эне жана бала класстары дайыма ажырагыс байланышта.
Окуу планына өзгөртүүлөрдү киргизүү ата-эне үчүн да, баланын классы үчүн да кайра карап чыгууну талап кылат. Мурас кылдаттык менен ишке ашырылышы керек, болбосо натыйжалары туура эмес болот.
24. Кандай гана өзгөчөлүк?
Коддун кадимки иштешине тоскоол болгон окуя өзгөчө болуп саналат. Аткаруу ишин улантуу үчүн, сиз Java'да бул өзгөчөлүктөрдү иштете аласыз. Java-да алдын ала аныкталган өзгөчөлүктөрдүн көптөгөн түрлөрү бар жана өзгөчө учурларды иштетүү try-catch блокторун колдонуу менен көтөрүлгөн өзгөчөлүктөрдү көзөмөлдөө үчүн каралган.
25. Өзгөчө кырдаалды чечүү деген эмне жана анын кандай пайдасы бар?
Күтүлбөгөн иштөө убактысынын каталары менен күрөшүү үчүн Javaдагы эң маанилүү ыкма - бул өзгөчө кырдаалдарды иштетүү. Бул программаны аткаруу учурунда пайда болгон аткаруу каталарын көзөмөлдөөгө мүмкүндүк берет.
Өзгөчө кырдаалдарды башкаруунун артыкчылыктары өзгөчө учурларды башкаруу учурунда үзгүлтүксүз программа агымын сактап калуу мүмкүнчүлүгүн камтыйт. Мисалы, эгер программанын бир бөлүмүндө ката болуп кетсе, анда аракет кылуу-кармап алуу блоктору менен өзгөчө кырдаалды чечсек, ал программанын калган бөлүгүнө эч кандай таасир этпейт.
26. Виртуалдык функциялар деген эмне?
Виртуалдык функциялар да ата-эне класстын функцияларына кирет жана субкласс тарабынан жокко чыгарылат. Бул процедуралар иштөө убактысынын полиморфизмине жетишүүгө жардам берет.
27. Достун функциясы эмнеден турат?
Дос функциясы класска таандык жана анын жалпыга ачык, купуя же корголгон маалыматтарына кирүүгө уруксат берилген функция. Эгерде функция класстан тышкары аныкталса, бул маалыматтарды алуу мүмкүн эмес. Жеке, коомдук жана корголгон мүмкүндүктү башкаруу ачкыч сөздөрү класс декларациясынын каалаган жеринде жасалышы мүмкүн болгон достук декларацияга эч кандай тиешеси жок.
28. Таштанды чогултуу деген эмне?
Таштанды чогултуу (GC) C# жана Java сыяктуу программалоо тилдеринин бир элементи болуп саналат, ал эстутумду калыбына келтирүү тутуму катары кызмат кылат. Таштанды чогултуу (GC) кыймылдаткычы - бул тиркеме мындан ары колдонбогон объекттер үчүн автоматташтырылган эс мейкиндигин бошотууга мүмкүндүк берген программалоо тилинин компоненти.
29. Кошуу деген эмне?
Бул ар кандай класстар бири-бирине таянып, билимди бөлүшө турган кырдаалдарды билдирет. Күчтүү байланыш бир класс башка класс жөнүндө толук билимге ээ болгондо пайда болот. Мүмкүнчүлүк өзгөрткүчтөрүн колдонуу менен класстардын, ыкмалардын же өзгөрмөлөрдүн көрүнүшүн белгилей аласыз. Интерфейстер алсызыраак байланышты камсыз кылуу үчүн колдонулат.
30. Когезия деген эмне?
Компоненттин белгилүү бир иш-аракетти аткаруу жолу анын бириктирилиши деп аталат. Күчтүү, бирдиктүү ыкма жөн гана аныкталган тапшырманы аткарат, ал эми алсыз, бирдиктүү ыкма бир тапшырманы бир нече кичинекей тапшырмаларга бөлүп, анан аларды бүтүрөт.
Java.io пакети абдан ырааттуу, бирок java.util пакети андай эмес.
31. try/catch блогун сүрөттөп бер.
Программа туура эмес коддон же берилиштерден улам катага туш болгондо, "аракет кылуу" жана "кармап алуу" аны кантип башкаруу керектигин көрсөтөт. Сыноо блогу - өзгөчө учурлар болгон учурда коддун бөлүгүнүн аталышы. Кармоо блогу аракет блокторунан өзгөчөлүктөр менен күрөшүү үчүн колдонулат.
32. Акыркы блокту сүрөттөп бергиле.
try ачкыч сөзүнүн коддун жумушчу бөлүгү акыркы болуп көрсөтүлөт. Ал ар дайым сыноодон кийин дароо иштетилүүчү кодду жана метод аяктаганга чейин кармоо блокторун белгилейт. Акыркы блок, өзгөчөлүк ыргытылганына же кармалышына карабастан, ар дайым иштетилет.
33. Интерфейс деген эмне?
Интерфейс – бул абстракттуу ыкмалардын жана колдонуучу аныктаган маалымат түрүнүн жыйындысы. Класс интерфейстин абстракттуу функцияларын мурастап, интерфейсти ишке ашырат.
Класс объекттин касиеттерин жана жүрүм-турумун билдирет, ал эми интерфейс класс ишке ашырган жүрүм-турумду камтыйт. Интерфейс "эмнени" билдирет, ал эми Класс "кантип" билдирет.
34. Композиция деген эмне?
курамы байланышты жетүү үчүн колдонсо болот. Ал бириктирүүдөн айырмаланып, көз каранды жана көз карандысыз объекттердин ортосундагы күчтүү объект байланышын көрсөтөт. Бул шартта көз каранды объект жок жана эгер ата-энелик объект өчүрүлсө, жок кылынат.
35. Конструктордук чынжыр деген эмне?
Конструктор чынжырчасы - учурдагы объект шилтемесине карата бир конструкторду башкасынан чакыруу ыкмасы. Эки вариант бар:
- Учурдагы класстагы конструкторго “бул” ачкыч сөзүн колдонуу менен кайрылса болот.
- "Супер" ачкыч сөзү конструкторду базалык класстан чакыруу үчүн колдонулат.
жыйынтыктоо
Объектке багытталган программалоо программанын структурасы жөнүндө ойлонууну жана алдын ала даярданууну талап кылат. Талаптарды нерселердин инстанцияларын түзүү үчүн колдонула турган негизги, көп жолу колдонулуучу класстарга кантип бөлүштүрүүнү карап чыгуу.
Жалпысынан алганда, OOP кабыл алуу жакшыртууну камсыз кылат маалымат структуралары узак мөөнөттүү келечекте убакытты үнөмдөйт жана кайра колдонуу мүмкүнчүлүгү. Караңыз Хашдорктун маек сериясы интервью даярдоого жардам үчүн.
Таштап Жооп