Obsah[Skryť][Šou]
- 1. Čo presne je objektovo orientované programovanie?
- 2. Prečo sú potrebné OOP?
- 3. Aké výhody ponúkajú princípy OOPS?
- 4. Aké sú piliere koncepcie OOPs?
- 5. Čo je to vlastne trieda?
- 6. Čo je to vlastne predmet?
- 7. Aké sú obmedzenia OOP?
- 8. Čo je dedičstvo?
- 9. Čo presne je zapuzdrenie?
- 10. Čo je to polymorfizmus?
- 11. Čo presne je abstrakcia?
- 12. Čo presne je preťaženie metódy?
- 13. Čo presne je prednosť pred metódou?
- 14. Čo presne je nadtrieda?
- 15. Čo presne je podtrieda?
- 16. Čo je to vlastne statický polymorfizmus?
- 17. Čo je to vlastne dynamický polymorfizmus?
- 18. Opíšte pojem konštruktér.
- 19. Čo sú to vlastne modifikátory prístupu?
- 20. Čo je to vlastne deštruktor?
- 21. Čo je to vlastne hybridné dedičstvo?
- 22. Čo presne je hierarchické dedičstvo?
- 23. Aké sú nevýhody dedenia?
- 24. Čo je to vlastne výnimka?
- 25. Čo presne je spracovanie výnimiek a aké sú jeho výhody?
- 26. Čo sú to vlastne virtuálne funkcie?
- 27. Čo je to vlastne funkcia priateľa?
- 28. Čo je vlastne Garbage Collection?
- 29. Čo presne je spojka?
- 30. Čo presne je súdržnosť?
- 31. Opíšte blok pokus/úlovok.
- 32. Opíšte záverečný blok.
- 33. Čo je to vlastne rozhranie?
- 34. Čo je to vlastne zloženie?
- 35. Čo presne je reťazenie konštruktorov?
- záver
Jedna z najvplyvnejších programovacích paradigiem sa nazýva OOP alebo objektovo orientované programovanie. Namiesto funkcií a procesov kladie dôraz na triedy a objekty.
Jeho hlavným cieľom je prepojiť dáta a veci tak, aby sa s nimi ľahšie pracovalo. Každý objekt v OOP je tvorený kódom vo forme procedúr alebo metód a dátami vo forme polí.
Jazyky ako C++, Objective C, Python, Perl a Java sú jedny z najpopulárnejších objektovo orientovaných programovacie jazyky.
Je dôležité porozumieť tomu viac, pretože otázky na pohovore sú mimoriadne typické. Väčšina firiem hľadá inžinierov, ktorí sú oboznámení s objektovo orientovanými metódami a vzormi. Takže, ak máte v úmysle zúčastniť sa pohovoru, musíte byť dobre oboznámení s myšlienkami OOP.
V tomto príspevku budú uvedené rôzne otázky na pohovory s objektovo orientovaným programovaním od začiatočníkov až po expertov. Môžete teda absolvovať akúkoľvek úroveň pohovoru a zabezpečiť si svoju vysnívanú pozíciu.
1. Čo presne je objektovo orientované programovanie?
Objektovo orientované programovanie (OOP) je založené skôr na skutočných objektoch než len na funkciách a procesoch. Pre jednotlivé produkty sú vytvorené triedy.
Dedičnosť, polymorfizmus a skrývanie sú príklady konceptov reálneho sveta, ktoré OOP začleňujú do programovania. Umožňuje tiež prepojiť dáta a kód.
2. Prečo sú potrebné OOP?
Existuje niekoľko dôvodov, prečo sú OOP vhodnejšie, avšak tieto sú najdôležitejšie:
- OOP umožňujú ľuďom ľahko porozumieť softvéru, aj keď nie sú oboznámení s implementáciou.
- Hops, zlepšite čitateľnosť kódu, zrozumiteľnosť a udržiavateľnosť desaťkrát.
- Pomocou OOP je možné jednoducho zostaviť a ovládať aj extrémne veľké aplikácie.
3. Aké výhody ponúkajú princípy OOPS?
- OOPS, programovacie objekty simulujú objekty skutočného sveta, čím sa znižuje zložitosť a zvyšuje sa prehľadnosť programu.
- Objekty môžu byť použité opakovane v mnohých programoch.
- Každý objekt vytvára odlišnú entitu, ktorej vnútorné operácie sú nezávislé od ostatných komponentov systému.
- Zavedením niekoľkých nových objektov a aktualizáciou niekoľkých už existujúcich je možné pridať novú funkcionalitu alebo sa prispôsobiť meniacim sa prevádzkovým podmienkam.
- Procesy alebo reprezentácia údajov programu OOPs môžu ľahko prejsť malými úpravami.
4. Aké sú piliere koncepcie OOPs?
Toto sú hlavné piliere OOP:
Dedičnosť: Umožňuje triedam dediť atribúty inej triedy.
zapuzdrenie: Toto je definované ako vlastnosť objektu, ktorá skrýva kritické informácie. Tým sú údaje pred členmi triedy skryté. Špecifikátory popisujú, ako sa v kóde pristupuje k atribútu objektu.
polymorfizmus: To vám umožňuje vykonávať jednu činnosť niekoľkými spôsobmi. Dosahuje sa to prostredníctvom rozhraní, v ktorých deklarujeme jedno rozhranie, ktoré je následne implementované niekoľkokrát.
abstrakcie: Túto funkciu môžete použiť na skrytie kritických informácií pred vonkajším svetom a prezentovanie len podstatných faktov.
5. Čo je to vlastne trieda?
Trieda je prototyp vytvorený z objektov v rôznych stavoch a s rôznym správaním. Má množstvo metód, ktoré zdieľajú objekty v tejto triede.
6. Čo je to vlastne predmet?
Objekt je entita reálneho sveta, ktorá slúži ako základná jednotka OOP, ako napríklad stolička, mačka alebo pes. Rôzne objekty majú rôzne stavy, vlastnosti a akcie.
7. Aké sú obmedzenia OOP?
- Veľkosť je väčšia ako veľkosť iných aplikácií.
- Vyžaduje si to určité zvyknutie.
- Niektoré druhy problémov si to nevyžadujú.
- Jeho vytvorenie bolo náročné na prácu a v porovnaní s inými aplikáciami funguje pomalšie.
8. Čo je dedičstvo?
Pojem nazývaný dedičnosť sa vzťahuje na zdieľanie zavedenej štruktúry a správania triedy inou triedou. Keď sa dedičstvo vzťahuje na jednu triedu, označuje sa ako jediné dedičstvo; keď závisí od mnohých tried, označuje sa ako viacnásobné dedičstvo.
9. Čo presne je zapuzdrenie?
Myšlienka OOP zahŕňa aj zapuzdrenie. Popisuje miešanie údajov a techník manipulácie s údajmi. Okrem toho pomáha zabrániť priamemu prístupu k niektorým častiam objektu.
10. Čo je to polymorfizmus?
V jazykoch OOP je polymorfizmus základným pojmom. Ukazuje, ako môžu rôzne triedy zdieľať rozhranie. Všetky tieto triedy sú schopné mať jedinečné implementácie rozhrania.
11. Čo presne je abstrakcia?
Abstrakcia je koncept objektovo orientovaného programovania (OOP), ktorý sa používa na vytvorenie štruktúry objektov reálneho sveta. „Zobrazuje“ len tie najdôležitejšie vlastnosti a „ukrýva“ cudzie informácie z vonkajšieho sveta. Základným cieľom abstrakcie je chrániť ľudí pred zbytočnými informáciami.
12. Čo presne je preťaženie metódy?
Je možné, že dva alebo viaceré postupy budú mať rovnaký názov. Mali by však mať odlišné parametre, rôzny počet parametrov, odlišné druhy alebo oboje. Tieto metódy sú známe ako preťažené metódy a funkcia je známa ako preťaženie metód.
13. Čo presne je prednosť pred metódou?
Objektovo orientované programovanie zahŕňa myšlienku prepisovania metód. Je to jazyková funkcia, ktorá umožňuje podtriede alebo podradenej triede ponúkať prispôsobenú implementáciu metódy, ktorú už poskytuje jedna z jej nadtried alebo rodičovských tried.
14. Čo presne je nadtrieda?
Nadtrieda, často známa ako základná trieda, je typ triedy, ktorý funguje ako rodič inej triedy alebo tried. Napríklad trieda Car má podtriedu s názvom Vehicle.
15. Čo presne je podtrieda?
Podtrieda je podtriedou inej triedy. Napríklad dodávka je podtrieda vozidiel alebo odvodená trieda.
16. Čo je to vlastne statický polymorfizmus?
V čase kompilácie prebieha typ polymorfizmu známy ako statický polymorfizmus (statická väzba). Preťaženie metódy je typ polymorfizmu v čase kompilácie.
17. Čo je to vlastne dynamický polymorfizmus?
Druh polymorfizmu, ktorý sa rieši za behu, sa nazýva runtime polymorfizmus, známy aj ako dynamický polymorfizmus (dynamická väzba). Nahradenie metód je ilustráciou polymorfizmu za behu.
18. Opíšte pojem konštruktér.
Konštruktor je špecifická metóda triedy, ktorá sa automaticky volá pri vytvorení inštancie triedy. Keď pristúpite k triede, je skonštruovaná s rovnakým názvom ako trieda a inicializuje všetky jej členy. Hlavné charakteristiky konštruktéra sú nasledovné:
Pre konštruktory neexistuje návratový typ.
Preťaženie konštruktérov je možné.
Nie je potrebné špecifikovať konštruktor; the.NET Framework to urobí automaticky.
19. Čo sú to vlastne modifikátory prístupu?
V objektovo orientovaných jazykoch sú kľúčové slová modifikátory prístupu alebo špecifikátory prístupu. Pomáha pri konfigurácii tried, metód a prístupnosti ostatných členov.
20. Čo je to vlastne deštruktor?
Deštruktor je metóda na uvoľnenie zdrojov priradených objektu. Keď je objekt zničený, táto metóda sa automaticky zavolá.
21. Čo je to vlastne hybridné dedičstvo?
Hybridné dedičstvo je druh dedičnosti generovaný zmiešaním niekoľkých foriem dedičstva, ako je jednoduché, viacnásobné atď.
22. Čo presne je hierarchické dedičstvo?
Viaceré podtriedy dedia od rodičovskej triedy v situácii hierarchického dedenia. Druh dedenia, v ktorom početné triedy pochádzajú z jednej nadradenej alebo základnej triedy, sa nazýva hierarchická dedičnosť. Napríklad trieda ovocia môže obsahovať podtriedy ako „jablko“, „mango“, „banán“, „čerešňa“ atď.
23. Aké sú nevýhody dedenia?
Predlžuje a komplikuje proces vykonávania. Vyžaduje si to aj prepínanie medzi rôznymi triedami. Triedy rodičov a detí sú vždy neoddeliteľne spojené.
Úpravy učebných osnov by si vyžiadali revízie tak pre rodičov, ako aj pre triedu dieťaťa. Dedičnosť musí byť implementovaná opatrne, inak budú výsledky nesprávne.
24. Čo je to vlastne výnimka?
Výnimkou je incident, ktorý zasahuje do bežného fungovania kódu. Ak chcete pokračovať vo vykonávaní, môžete tieto výnimky spracovať v jazyku Java. V jazyku Java existuje veľa druhov preddefinovaných výnimiek a spracovanie výnimiek je k dispozícii na kontrolu vyvolaných výnimiek pomocou blokov try-catch.
25. Čo presne je spracovanie výnimiek a aké sú jeho výhody?
Najdôležitejšou metódou v Jave na riešenie neočakávaných zlyhaní behu je spracovanie výnimiek. Umožňuje vám kontrolovať chyby behu, ktoré vznikajú počas vykonávania programu.
Medzi výhody spracovania výnimiek patrí schopnosť zachovať pravidelný tok programu pri správe výnimiek. Ak sa napríklad vyskytne chyba v jednej časti programu, nebude to mať žiadny vplyv na zvyšok programu, ak výnimku spracujeme pomocou blokov try-catch.
26. Čo sú to vlastne virtuálne funkcie?
Virtuálne funkcie sú tiež zahrnuté vo funkciách nadradenej triedy a sú prepísané podtriedou. Tieto rutiny pomáhajú pri dosahovaní runtime polymorfizmu.
27. Čo je to vlastne funkcia priateľa?
Funkcia priateľa je funkcia, ktorá patrí do triedy a má povolený prístup k jej verejným, súkromným alebo chráneným údajom. Ak je funkcia definovaná mimo triedy, nie je možné tieto údaje získať. Kľúčové slová riadenia prístupu private, public a protected nemajú žiadny vplyv na deklaráciu priateľa, ktorú možno zadať kdekoľvek v deklarácii triedy.
28. Čo je vlastne Garbage Collection?
Garbage collection (GC) je prvok programovacích jazykov ako C# a Java, ktorý slúži ako systém obnovy pamäte. Motor garbage collection (GC) je komponent programovacieho jazyka, ktorý umožňuje automatické uvoľnenie pamäťového priestoru pre objekty, ktoré aplikácia už nepoužíva.
29. Čo presne je spojka?
Vzťahuje sa na situácie, v ktorých sa rôzne triedy navzájom spoliehajú a zdieľajú vedomosti. Silné spojenie nastane, keď jedna trieda má podrobné znalosti o inej triede. Pomocou modifikátorov prístupu môžete určiť viditeľnosť tried, metód alebo premenných. Rozhrania sa používajú na zabezpečenie slabšej väzby.
30. Čo presne je súdržnosť?
Spôsob, akým komponent vykonáva určitú činnosť, sa označuje ako jeho súdržnosť. Silný, súdržný prístup jednoducho vykoná definovanú úlohu, zatiaľ čo slabá, súdržná metóda by rozdelila jedinú úlohu na niekoľko menších úloh a tie by potom dokončila.
Balík Java.io je celkom koherentný, ale balík java.util nie.
31. Opíšte blok pokus/úlovok.
Keď program narazí na chybu v dôsledku nesprávneho kódu alebo údajov, „vyskúšať“ a „chytiť“ označujú, ako ju spravovať. Blok try je názov časti kódu, keď sa vyskytnú výnimky. Blok catch sa používa na zachytenie a riešenie výnimiek z blokov try.
32. Opíšte záverečný blok.
Pracovná časť kódu kľúčového slova try je uvedená ako posledná. Označuje kód, ktorý sa vždy spustí ihneď po skúške, a všetky bloky zachytávania pred dokončením metódy. Posledný blok sa spustí vždy bez ohľadu na to, či je vyvolaná alebo zachytená výnimka.
33. Čo je to vlastne rozhranie?
Rozhranie je kombináciou abstraktných metód a používateľom definovaného typu údajov. Trieda implementuje rozhranie, ktoré zdedí abstraktné funkcie rozhrania.
Trieda predstavuje vlastnosti a správanie objektu, zatiaľ čo rozhranie zahŕňa správanie, ktoré trieda implementuje. Rozhranie predstavuje „čo“, zatiaľ čo trieda vyjadruje „ako“.
34. Čo je to vlastne zloženie?
Kompozícia sa môže použiť na dosiahnutie spojenia. Demonštruje silné objektové prepojenie medzi závislými a nezávislými objektmi, na rozdiel od agregácie. Závislý objekt za týchto okolností neexistuje a bude odstránený, ak sa vymaže nadradený objekt.
35. Čo presne je reťazenie konštruktorov?
Reťazenie konštruktorov je technika volania jedného konštruktora z druhého vo vzťahu k aktuálnej referencii objektu. Sú dve možnosti:
- Na konštruktor v aktuálnej triede možno odkazovať pomocou kľúčového slova „this“.
- Kľúčové slovo „super“ sa použije na vyvolanie konštruktora zo základnej triedy.
záver
Objektovo orientované programovanie si vyžaduje premýšľanie o štruktúre programu a prípravu vopred. Skúma, ako rozdeliť požiadavky do základných, opakovane použiteľných tried, ktoré možno použiť na vytváranie inštancií vecí.
Celkovo znamená prijatie OOP zlepšenie dátových štruktúr a znovupoužiteľnosť, čo z dlhodobého hľadiska šetrí čas. Pozri Séria rozhovorov s Hashdorkom za pomoc s prípravou na pohovor.
Nechaj odpoveď