Змест[Схаваць][Паказаць]
- 1. Што такое аб'ектна-арыентаванае праграмаванне?
- 2. Навошта патрэбны ААП?
- 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. Што такое ланцужок канструктараў?
- заключэнне
Адна з самых уплывовых парадыгм праграмавання называецца ААП, або аб'ектна-арыентаванае праграмаванне. Замест функцый і працэсаў ён падкрэслівае класы і аб'екты.
Яе галоўная мэта - злучыць дадзеныя і рэчы, каб з імі было прасцей працаваць. Кожны аб'ект у ААП складаецца з кода ў выглядзе працэдур або метадаў і даных у выглядзе палёў.
Такія мовы, як C++, Objective C, Python, Perl і Java, з'яўляюцца аднымі з самых папулярных аб'ектна-арыентаваных мовы праграмавання.
Вельмі важна даведацца пра гэта больш, бо пытанні інтэрв'ю "ой" вельмі тыповыя. Большасць фірмаў шукаюць інжынераў, якія знаёмыя з аб'ектна-арыентаванымі метадамі і шаблонамі. Такім чынам, калі вы збіраецеся прысутнічаць на сумоўі, вы павінны добра разбірацца ў ідэях ААП.
У гэтай публікацыі будуць паказаны розныя пытанні інтэрв'ю па аб'ектна-арыентаваным праграмаванні ад пачаткоўцаў да экспертаў. Такім чынам, вы можаце прайсці сумоўе любога ўзроўню і замацаваць пасаду сваёй мары.
1. Што такое аб'ектна-арыентаванае праграмаванне?
Праграмаванне, якое з'яўляецца аб'ектна-арыентаваным (ООП), заснавана на фактычных аб'ектах, а не проста на функцыях і працэсах. Класы ствараюцца для асобных прадуктаў.
Наследаванне, палімарфізм і ўтойванне - прыклады канцэпцый рэальнага свету, якія ААП уключаюць у праграмаванне. Гэта таксама дазваляе звязваць дадзеныя і код.
2. Навошта патрэбны ААП?
Ёсць некалькі прычын, чаму ААП з'яўляюцца пераважнымі, аднак найбольш важнымі з'яўляюцца наступныя:
- OOPs, дазваляюць людзям лёгка зразумець праграмнае забеспячэнне, нават калі яны не знаёмыя з рэалізацыяй.
- На жаль, паляпшэнне чытальнасці кода, зразумеласці і зручнасці абслугоўвання ў дзесяць разоў.
- Выкарыстоўваючы ААП, нават надзвычай вялікія прыкладанні можна проста ствараць і кіраваць імі.
3. Якія перавагі прапануюць прынцыпы OOPS?
- УПС, аб'екты праграмавання мадэлююць аб'екты рэальнага свету, памяншаючы складанасць і павялічваючы яснасць праграмы.
- Аб'екты можна шматразова выкарыстоўваць у многіх праграмах.
- Кожны аб'ект стварае асобную сутнасць, унутраныя аперацыі якой не залежаць ад іншых кампанентаў сістэмы.
- Уводзячы некалькі новых аб'ектаў і абнаўляючы некалькі ўжо існуючых, можна дадаць новую функцыянальнасць або адаптавацца да зменлівых умоў эксплуатацыі.
- Працэсы або прадстаўленне дадзеных ООП-праграмы могуць лёгка падвяргацца невялікім карэкціроўкам.
4. Якія слупы канцэпцыі ААП?
Ніжэй прыведзены асноўныя слупы ААП:
ўспадкоўванне: Гэта дазваляе класам наследаваць атрыбуты іншага класа.
Інкапсуляцыя: Гэта вызначаецца як уласцівасць аб'екта, якая хавае важную інфармацыю. Гэта робіць дадзеныя схаванымі ад членаў класа. Спецыфікатары апісваюць спосаб доступу да атрыбута аб'екта ў кодзе.
Паліморфізм: Гэта дазваляе выконваць адну дзейнасць некалькімі спосабамі. Гэта дасягаецца праз інтэрфейсы, у якіх мы дэкларуем адзін інтэрфейс, які пасля рэалізуецца некалькі разоў.
Абстракцыя: Вы можаце выкарыстоўваць гэтую функцыю, каб схаваць важную інфармацыю ад знешняга свету і прадставіць толькі істотныя факты.
5. Што такое клас?
Клас - гэта прататып, які складаецца з аб'ектаў у розных станах і з рознымі паводзінамі. Ён мае шэраг метадаў, якія падзяляюць аб'екты гэтага класа.
6. Што такое аб'ект?
Аб'ект - гэта рэальная сутнасць, якая служыць фундаментальнай адзінкай ААП, напрыклад, крэсла, кошка або сабака. Розныя аб'екты маюць розныя станы, уласцівасці і дзеянні.
7. Якія абмежаванні ААП?
- Памер больш, чым у іншых прыкладанняў.
- Гэта патрабуе некаторага прывыкання.
- Некаторыя віды праблем не патрабуюць гэтага.
- Яго стварэнне было працаёмкім, і ў параўнанні з іншымі праграмамі яно працуе павольней.
8. Што такое спадчына?
Паняцце, званае спадчыннасцю, адносіцца да сумеснага выкарыстання ўсталяванай структуры і паводзін класа іншым класам. Калі спадчына прымяняецца да аднаго класа, гэта называецца адзінкавай спадчынай; калі гэта залежыць ад многіх класаў, гэта называецца множным спадчынай.
9. Што такое інкапсуляцыя?
Ідэя ААП таксама ўключае ў сябе інкапсуляцыю. Ён апісвае змешванне дадзеных і метады маніпулявання дадзенымі. Акрамя таго, гэта дапамагае прадухіліць прамы доступ да некаторых частак аб'екта.
10. Што такое палімарфізм?
У ААП-мовах палімарфізм з'яўляецца фундаментальным паняццем. Гэта паказвае, як розныя класы могуць падзяляць інтэрфейс. Усе гэтыя класы здольныя мець унікальныя рэалізацыі інтэрфейсу.
11. Што такое абстракцыя?
Абстракцыя - гэта канцэпцыя аб'ектна-арыентаванага праграмавання (ААП), якая выкарыстоўваецца для стварэння структуры аб'ектаў рэальнага свету. Ён «адлюстроўвае» толькі самыя важныя якасці і «хавае» староннія звесткі ад знешняга свету. Асноўная мэта абстракцыі - засцерагчы людзей ад непатрэбнай інфармацыі.
12. Што такое перагрузка метаду?
Дзве або больш працэдур могуць мець аднолькавыя назвы. Аднак яны павінны мець розныя параметры, розную колькасць параметраў, розныя віды або абодва. Яны вядомыя як перагружаныя метады, а функцыя вядомая як перагрузка метадаў.
13. Што такое перавызначэнне метаду?
Аб'ектна-арыентаванае праграмаванне ўключае ідэю перавызначэння метаду. Гэта функцыя мовы, якая дазваляе падкласу або даччынаму класу прапаноўваць наладжаную рэалізацыю метаду, які ўжо забяспечвае адзін з яго суперкласаў або бацькоўскіх класаў.
14. Што такое суперклас?
Суперклас, часта вядомы як базавы клас, - гэта тып класа, які дзейнічае як бацька іншага класа або класаў. Клас Аўтамабіль, напрыклад, мае падклас пад назвай Аўтамабіль.
15. Што такое падклас?
Падклас - гэта падклас іншага класа. Фургон, напрыклад, з'яўляецца падкласам транспартных сродкаў або вытворным класам.
16. Што такое статычны палімарфізм?
Падчас кампіляцыі мае месца тып палімарфізму, вядомы як статычны палімарфізм (статычнае прывязванне). Перагрузка метадаў - гэта тып палімарфізму падчас кампіляцыі.
17. Што такое дынамічны палімарфізм?
Своеасаблівы палімарфізм, які вырашаецца падчас выканання, называецца палімарфізмам выканання, таксама вядомы як дынамічны палімарфізм (дынамічнае прывязванне). Перавызначэнне метадаў з'яўляецца ілюстрацыяй палімарфізму часу выканання.
18. Ахарактарызуйце паняцце канструктара.
Канструктар - гэта пэўны метад класа, які аўтаматычна выклікаецца пры стварэнні асобніка класа. Калі вы атрымліваеце доступ да класа, ён ствараецца з тым жа імем, што і клас, і ініцыялізуе ўсе яго члены. Асноўныя характарыстыкі канструктара наступныя:
Для канструктараў няма тыпу вяртання.
Перагрузка канструктараў магчымая.
Не патрабуецца ўказваць канструктар; the.NET Framework зробіць гэта аўтаматычна.
19. Што такое мадыфікатары доступу?
У аб'ектна-арыентаваных мовах ключавыя словы з'яўляюцца мадыфікатарамі або спецыфікатарамі доступу. Гэта дапамагае ў канфігурацыі класаў, метадаў і даступнасці іншых удзельнікаў.
20. Што такое дэструктар?
Дэструктар - гэта метад вызвалення рэсурсаў, прызначаных аб'екту. Пры знішчэнні аб'екта гэты метад выклікаецца аўтаматычна.
21. Што такое гібрыднае спадчыннасць?
Гібрыдная спадчыннасць - гэта разнавіднасць спадчыннасці, якая ўтвараецца ў выніку змешвання некалькіх формаў спадчыннасці, такіх як адзінкавая, множная і гэтак далей.
22. Што такое іерархічная спадчыннасць?
Некалькі падкласаў успадкоўваюць ад бацькоўскага класа ў сітуацыі іерархічнага ўспадкоўвання. Выгляд спадчыны, пры якім шматлікія класы паходзяць ад аднаго бацькоўскага або базавага класа, вядомы як іерархічная спадчыннасць. Напрыклад, клас садавіны можа ўтрымліваць такія падкласы, як «яблык», «манга», «банан», «вішня» і гэтак далей.
23. Якія недахопы спадчыннасці?
Гэта падаўжае і ўскладняе працэс выканання. Гэта таксама патрабуе пераключэння паміж рознымі класамі. Класы бацькоў і дзяцей заўсёды непарыўна звязаны.
Змены ў вучэбнай праграме запатрабуюць перагляду як для бацькоў, так і для класа дзіцяці. Наследаванне павінна быць асцярожным, інакш вынікі будуць памылковымі.
24. Што менавіта з'яўляецца выключэннем?
Выключэннем з'яўляецца інцыдэнт, які перашкаджае звычайнай працы кода. Каб працягнуць выкананне, вы можаце апрацаваць гэтыя выключэнні ў Java. У Java існуе шмат відаў загадзя вызначаных выключэнняў, і прадугледжана апрацоўка выключэнняў для кантролю над узнятымі выключэннямі з дапамогай блокаў try-catch.
25. Што такое апрацоўка выключэнняў і якія яе перавагі?
Найбольш важным метадам у Java для барацьбы з нечаканымі збоямі падчас выканання з'яўляецца апрацоўка выключэнняў. Гэта дазваляе кантраляваць памылкі падчас выканання, якія ўзнікаюць падчас выканання праграмы.
Перавагі апрацоўкі выключэнняў ўключаюць у сябе магчымасць захоўваць звычайны паток праграмы пры кіраванні выключэннямі. Напрыклад, калі памылка адбываецца ў адным раздзеле праграмы, яна не паўплывае на астатнюю частку праграмы, калі мы апрацоўваем выключэнне з дапамогай блокаў try-catch.
26. Што такое віртуальныя функцыі?
Віртуальныя функцыі таксама ўваходзяць у функцыі бацькоўскага класа і перавызначаюцца падкласам. Гэтыя працэдуры дапамагаюць у дасягненні палімарфізму часу выканання.
27. Што такое функцыя сябра?
Функцыя сябра - гэта функцыя, якая належыць да класа і мае доступ да сваіх агульнадаступных, прыватных або абароненых даных. Калі функцыя вызначана па-за класам, немагчыма атрымаць гэтыя даныя. Ключавыя словы кіравання доступам private, public і protected не маюць дачынення да аб'явы сябра, якую можна зрабіць дзе заўгодна ў дэкларацыі класа.
28. Што такое збор смецця?
Збор смецця (GC) - гэта элемент такіх моў праграмавання, як C# і Java, які служыць сістэмай аднаўлення памяці. Механізм збору смецця (GC) - гэта кампанент мовы праграмавання, які дазваляе аўтаматызавана вызваляць прастору памяці для аб'ектаў, якія праграма больш не выкарыстоўвае.
29. Што такое счапленне?
Гэта адносіцца да сітуацый, у якіх розныя класы абапіраюцца адзін на аднаго і дзеляцца ведамі. Моцная сувязь узнікае, калі адзін клас мае падрабязныя веды аб іншым класе. Вы можаце вызначыць бачнасць класаў, метадаў або зменных з дапамогай мадыфікатараў доступу. Інтэрфейсы выкарыстоўваюцца для забеспячэння больш слабой сувязі.
30. Што такое згуртаванасць?
Тое, як кампанент выконвае пэўную дзейнасць, называецца яго згуртаванасцю. Моцны, згуртаваны падыход проста выканае пастаўленую задачу, у той час як слабы, згуртаваны метад падзяліў бы адну задачу на некалькі больш дробных, а затым завяршыў іх.
Пакет Java.io даволі паслядоўны, але не пакет java.util.
31. Апішыце блок try/catch.
Калі праграма сутыкаецца з памылкай з-за няправільнага кода або даных, «паспрабаваць» і «злавіць» паказваюць, як ёй кіраваць. Блок спробы - гэта назва часткі кода, калі ўзнікаюць выключэнні. Блок catch выкарыстоўваецца для захопу і апрацоўкі выключэнняў з блокаў try.
32. Апішыце заключны блок.
Працоўная частка кода ключавога слова try паказваецца апошняй. Ён пазначае код, які заўсёды запускаецца адразу пасля выпрабавання, і любыя блокі catch да завяршэння метаду. Канчатковы блок заўсёды выконваецца незалежна ад таго, ствараецца выключэнне або перахопліваецца.
33. Што такое інтэрфейс?
Інтэрфейс - гэта спалучэнне абстрактных метадаў і вызначанага карыстальнікам тыпу даных. Клас рэалізуе інтэрфейс, успадкоўваючы абстрактныя функцыі інтэрфейсу.
Клас прадстаўляе ўласцівасці і паводзіны аб'екта, у той час як інтэрфейс уключае паводзіны, якія рэалізуе клас. Інтэрфейс уяўляе «што», у той час як клас перадае «як».
34. Што такое кампазіцыя?
Склад можна выкарыстоўваць для дасягнення злучэння. Ён дэманструе моцную аб'ектную сувязь паміж залежным і незалежным аб'ектамі, у адрозненне ад агрэгацыі. У гэтай акалічнасці залежны аб'ект не існуе і будзе выдалены, калі бацькоўскі аб'ект будзе выдалены.
35. Што такое ланцужок канструктараў?
Звязванне канструктараў - гэта метад выкліку аднаго канструктара з іншага ў адносінах да бягучай спасылкі на аб'ект. Ёсць два варыянты:
- На канструктар у бягучым класе можна спасылацца з дапамогай ключавога слова this.
- Ключавое слова "super" будзе выкарыстоўвацца для выкліку канструктара з базавага класа.
заключэнне
Аб'ектна-арыентаванае праграмаванне патрабуе прадумвання структуры праграмы і падрыхтоўкі загадзя. Вывучэнне таго, як падзяліць патрабаванні на асноўныя шматразовыя класы, якія можна выкарыстоўваць для стварэння асобнікаў рэчаў.
У цэлым, ахоп ААП забяспечвае паляпшэнне структуры дадзеных і шматразовае выкарыстанне, што эканоміць час у доўгатэрміновай перспектыве. Глядзіце Серыя інтэрв'ю Хашдорка за дапамогу ў падрыхтоўцы да сумоўя.
Пакінуць каментар