Sisukord[Peida][Näita]
- 1. Mis täpselt on objektorienteeritud programmeerimine?
- 2. Miks on OOP-id vajalikud?
- 3. Milliseid eeliseid pakuvad OOPS-i põhimõtted?
- 4. Millised on OOP-ide kontseptsiooni alustalad?
- 5. Mis täpselt on klass?
- 6. Mis täpselt on objekt?
- 7. Millised on OOP-ide piirangud?
- 8. Mis on pärimine?
- 9. Mis täpselt on kapseldamine?
- 10. Mis on polümorfism?
- 11. Mis täpselt on abstraktsioon?
- 12. Mis täpselt on meetodi ülekoormus?
- 13. Mis täpselt on meetodi ülimuslikkus?
- 14. Mis täpselt on superklass?
- 15. Mis täpselt on alamklass?
- 16. Mis täpselt on staatiline polümorfism?
- 17. Mis täpselt on dünaamiline polümorfism?
- 18. Kirjeldage konstruktori mõistet.
- 19. Mis täpselt on juurdepääsu modifikaatorid?
- 20. Mis täpselt on hävitaja?
- 21. Mis täpselt on hübriidpärimine?
- 22. Mis täpselt on hierarhiline pärimine?
- 23. Millised on pärimise puudused?
- 24. Mis täpselt on erand?
- 25. Mis täpselt on erandite käsitlemine ja millised on selle eelised?
- 26. Mis täpselt on virtuaalsed funktsioonid?
- 27. Mis täpselt on sõbra funktsioon?
- 28. Mis täpselt on prügivedu?
- 29. Mis täpselt on sidumine?
- 30. Mis täpselt on ühtekuuluvus?
- 31. Kirjelda proovi/püüa blokki.
- 32. Kirjeldage viimast plokki.
- 33. Mis täpselt on liides?
- 34. Mis täpselt on kompositsioon?
- 35. Mis täpselt on konstruktori aheldamine?
- Järeldus
Ühte mõjukamat programmeerimisparadigmat nimetatakse OOP-deks ehk objektorienteeritud programmeerimiseks. Funktsioonide ja protsesside asemel rõhutab see klasse ja objekte.
Selle peamine eesmärk on ühendada andmed ja asjad, et nendega oleks lihtsam töötada. Iga OOP-i objekt koosneb protseduuride või meetodite kujul olevast koodist ja väljade kujul olevatest andmetest.
Keeled nagu C++, Objective C, Python, Perl ja Java on ühed populaarseimad objektorienteeritud keeled programmeerimiskeeled.
Kriitiline on sellest rohkem aru saada, kuna oops-intervjuu küsimused on äärmiselt tüüpilised. Enamik ettevõtteid otsib insenere, kes tunnevad objektorienteeritud meetodeid ja mustreid. Seega, kui kavatsete intervjuul osaleda, peate olema OOP ideedega hästi kursis.
Selles postituses kuvatakse erinevad objektorienteeritud programmeerimise intervjuu küsimused algajast kuni eksperdi tasemeni. Seetõttu saate läbida mis tahes taseme intervjuu ja kindlustada oma unistuste positsioon.
1. Mis täpselt on objektorienteeritud programmeerimine?
Objektorienteeritud programmeerimine (OOP) põhineb tegelikel objektidel, mitte ainult funktsioonidel ja protsessidel. Klassid luuakse üksikute toodete jaoks.
Pärand, polümorfism ja varjamine on näited reaalsetest kontseptsioonidest, mida OOP-id programmeerimisse kaasavad. Samuti võimaldab see ühendada andmeid ja koodi.
2. Miks on OOP-id vajalikud?
On mitmeid põhjuseid, miks OOP-i eelistatakse, kuid kõige olulisemad on järgmised:
- OOP-id võimaldavad inimestel tarkvara hõlpsasti mõista isegi siis, kui nad pole selle rakendusega tuttavad.
- Oih, parandage koodi loetavust, arusaadavust ja hooldatavust kümnekordselt.
- OOP-ide abil saab isegi väga suuri rakendusi lihtsalt ehitada ja juhtida.
3. Milliseid eeliseid pakuvad OOPS-i põhimõtted?
- OOPS, programmeerimisobjektid simuleerivad tegelikke objekte, vähendades keerukust ja suurendades programmi selgust.
- Objekte saab paljudes programmides korduvalt kasutada.
- Iga objekt loob eraldiseisva olemi, mille sisemised toimingud on teistest süsteemikomponentidest sõltumatud.
- Mõne uue objekti kasutuselevõtuga ja mõne juba olemasoleva uuendamisega on võimalik lisada uut funktsionaalsust või kohaneda muutuvate töötingimustega.
- OOP-programmi protsessid või andmete esitus võivad kergesti läbida väikeseid muudatusi.
4. Millised on OOP-ide kontseptsiooni alustalad?
Järgmised on OOP peamised tugisambad:
Pärisosa: See võimaldab klassidel pärida teise klassi atribuute.
Kapseldamine: seda määratletakse kui objekti atribuuti, mis varjab olulist teavet. See hoiab andmed klassi liikmete eest varjatuna. Täpsustajad kirjeldavad, kuidas objekti atribuudile koodis juurde pääsetakse.
Polümorfism: See võimaldab teil teha ühte tegevust mitmel viisil. See saavutatakse liideste kaudu, milles deklareerime ühe liidese, mida hiljem mitu korda rakendatakse.
Abstraktsioon: seda funktsiooni saate kasutada kriitilise teabe välismaailma eest peitmiseks ja ainult oluliste faktide esitamiseks.
5. Mis täpselt on klass?
Klass on prototüüp, mis koosneb erinevates olekutes ja erineva käitumisega objektidest. Sellel on mitmeid meetodeid, mida selle klassi objektid jagavad.
6. Mis täpselt on objekt?
Objekt on reaalmaailma üksus, mis toimib OOP-i põhiüksusena, näiteks tool, kass või koer. Erinevatel objektidel on erinevad olekud, omadused ja tegevused.
7. Millised on OOP-ide piirangud?
- Suurus on suurem kui teistel rakendustel.
- See nõuab veidi harjumist.
- Teatud tüüpi probleemid ei nõua seda.
- Selle loomine oli töömahukas ja võrreldes teiste rakendustega töötab see aeglasemalt.
8. Mis on pärimine?
Mõiste, mida nimetatakse pärimiseks, viitab klassi väljakujunenud struktuuri ja käitumise jagamisele teise klassi poolt. Kui pärandit rakendatakse ühele klassile, nimetatakse seda üksikuks pärandiks; kui see sõltub paljudest klassidest, nimetatakse seda mitmeks pärandiks.
9. Mis täpselt on kapseldamine?
OOPide idee hõlmab ka kapseldamist. See kirjeldab andmete segamist ja andmetega manipuleerimise tehnikaid. Lisaks aitab see takistada otsest juurdepääsu objekti mõnele osale.
10. Mis on polümorfism?
OOP keeltes on polümorfism põhimõiste. See näitab, kuidas erinevad klassid võivad liidest jagada. Kõik need klassid on võimelised kasutama ainulaadseid liidese rakendusi.
11. Mis täpselt on abstraktsioon?
Abstraktsioon on objektorienteeritud programmeerimise (OOP) kontseptsioon, mida kasutatakse reaalmaailma objektide struktuuri loomiseks. See “kuvab” just kõige olulisemad omadused ja “peidab” välismaailmast pärit kõrvalist teavet. Abstraktsiooni põhieesmärk on kaitsta inimesi tarbetu teabe eest.
12. Mis täpselt on meetodi ülekoormus?
Kahel või enamal protseduuril võib olla sama nimi. Neil peaks siiski olema erinevad parameetrid, erinev arv parameetreid, erinevad liigid või mõlemad. Neid nimetatakse ülekoormatud meetoditeks ja funktsiooni nimetatakse meetodi ülekoormamiseks.
13. Mis täpselt on meetodi ülimuslikkus?
Objektorienteeritud programmeerimine sisaldab meetodi alistamise ideed. See on keelefunktsioon, mis võimaldab alamklassil või alamklassil pakkuda meetodi kohandatud rakendust, mida üks selle ülem- või ülemklassidest juba pakub.
14. Mis täpselt on superklass?
Ülemklass, mida sageli nimetatakse baasklassiks, on klassitüüp, mis toimib mõne teise klassi või klasside vanemana. Autoklassil on näiteks alamklass nimega Sõiduk.
15. Mis täpselt on alamklass?
Alamklass on teise klassi alamklass. Näiteks kaubik on sõiduki alamklass või tuletatud klass.
16. Mis täpselt on staatiline polümorfism?
Kompileerimise ajal toimub teatud tüüpi polümorfism, mida nimetatakse staatiliseks polümorfismiks (staatiline sidumine). Meetodi ülekoormus on kompileerimisaja polümorfismi tüüp.
17. Mis täpselt on dünaamiline polümorfism?
Teatavat polümorfismi, mis lahendatakse käitusajal, nimetatakse käitusaegseks polümorfismiks, tuntud ka kui dünaamiline polümorfism (dünaamiline sidumine). Meetodite alistamine on käitusaegse polümorfismi näide.
18. Kirjeldage konstruktori mõistet.
Konstruktor on klassi spetsiifiline meetod, mida kutsutakse automaatselt klassi eksemplari loomisel. Klassi juurde pääsedes luuakse see klassiga sama nimega ja initsialiseeritakse kõik selle liikmed. Konstruktori peamised omadused on järgmised:
Konstruktorite tagastustüüp puudub.
Võimalik on konstruktorite ülekoormamine.
Konstruktorit ei ole vaja määrata; NET Framework teeb seda automaatselt.
19. Mis täpselt on juurdepääsu modifikaatorid?
Objektorienteeritud keeltes on märksõnad juurdepääsu muutjad või juurdepääsu määrajad. See aitab konfigureerida klasse, meetodeid ja teiste liikmete juurdepääsetavust.
20. Mis täpselt on hävitaja?
Destruktor on meetod objektile määratud ressursside vabastamiseks. Kui objekt hävitatakse, kutsutakse see meetod automaatselt välja.
21. Mis täpselt on hübriidpärimine?
Hübriidne pärand on teatud tüüpi pärand, mis tekib mitme pärimisvormi, näiteks ühe-, mitmekordse jne segunemisel.
22. Mis täpselt on hierarhiline pärimine?
Mitu alamklassi pärivad hierarhilise pärimise olukorras ülemklassist. Pärandiliiki, mille puhul arvukad klassid põlvnevad ühest vanemast või põhiklassist, nimetatakse hierarhiliseks pärandiks. Näiteks võib puuviljaklass sisaldada alamklasse, nagu „õun, mango”, „banaan”, „kirss” jne.
23. Millised on pärimise puudused?
See pikendab ja raskendab täitmisprotsessi. See nõuab ka vahetust erinevate klasside vahel. Vanema- ja lapseklassid on alati lahutamatult seotud.
Õppekava muudatused tooksid kaasa vajaduse nii vanema kui ka lapse klassi jaoks ülevaatamist. Pärimist tuleb hoolikalt rakendada, vastasel juhul on tulemused valed.
24. Mis täpselt on erand?
Erandiks on juhtum, mis häirib koodi tavapärast tööd. Täitmise jätkamiseks saate neid erandeid käsitleda Javas. Java-s on palju erinevaid eelmääratletud erandeid ja erandite käsitlemine on ette nähtud esile tõstetud erandite kontrollimiseks proovivõtuplokkide abil.
25. Mis täpselt on erandite käsitlemine ja millised on selle eelised?
Java kõige olulisem meetod ootamatute käitusaja tõrgetega toimetulemiseks on erandite käsitlemine. See võimaldab teil kontrollida programmi täitmise ajal tekkivaid käitusvigu.
Erandite käsitlemise eelised hõlmavad võimalust säilitada tavapärane programmivoog erandite haldamise ajal. Näiteks kui programmi ühes osas ilmneb tõrge, ei mõjuta see ülejäänud programmi, kui käsitleme erandit try-catch plokkidega.
26. Mis täpselt on virtuaalsed funktsioonid?
Virtuaalsed funktsioonid sisalduvad ka vanemklassi funktsioonides ja alamklassi poolt tühistatakse. Need rutiinid aitavad saavutada käitusaja polümorfismi.
27. Mis täpselt on sõbra funktsioon?
Sõbrafunktsioon on funktsioon, mis kuulub klassi ja millel on juurdepääs selle avalikele, privaatsete või kaitstud andmetele. Kui funktsioon on määratletud väljaspool klassi, pole neid andmeid võimalik hankida. Juurdepääsukontrolli märksõnad privaatne, avalik ja kaitstud ei mõjuta sõbra deklaratsiooni, mida saab teha kõikjal klassi deklaratsioonis.
28. Mis täpselt on prügivedu?
Prügikogumine (GC) on programmeerimiskeelte nagu C# ja Java element, mis toimib mälu taastamise süsteemina. Prügikogumismootor (GC) on programmeerimiskeele komponent, mis võimaldab automaatset mäluruumi vabastamist objektide jaoks, mida rakendus enam ei kasuta.
29. Mis täpselt on sidumine?
See viitab olukordadele, kus erinevad klassid toetuvad üksteisele ja jagavad teadmisi. Tugev seos tekib siis, kui ühel klassil on teisest klassist üksikasjalikud teadmised. Saate määrata klasside, meetodite või muutujate nähtavuse juurdepääsumuutjate abil. Nõrgema sidestuse tagamiseks kasutatakse liideseid.
30. Mis täpselt on ühtekuuluvus?
Seda, kuidas komponent teatud tegevust teostab, nimetatakse selle ühtekuuluvuseks. Tugev ja sidus lähenemisviis täidab lihtsalt määratletud ülesande, samas kui nõrk, sidus meetod jagab ühe ülesande mitmeks väiksemaks ülesandeks ja täidab need seejärel.
Java.io pakett on üsna sidus, kuid pakett java.util mitte.
31. Kirjelda proovi/püüa blokki.
Kui programmis ilmneb vale koodi või andmete tõttu tõrge, näitavad „proovi” ja „püüda”, kuidas seda hallata. Prooviplokk on erandite ilmnemisel koodiosa nimi. Püügiplokki kasutatakse prooviplokkide jäädvustamiseks ja erandite käsitlemiseks.
32. Kirjeldage viimast plokki.
Proovi märksõna töötav koodiosa näidatakse viimasena. See määrab koodi, mis käivitatakse alati kohe pärast prooviversiooni, ja kõik püüdmisblokid enne meetodi lõpetamist. Lõplik blokk jooksetakse alati olenemata sellest, kas erand visatakse või püütakse kinni.
33. Mis täpselt on liides?
Liides on abstraktsete meetodite ja kasutaja määratud andmetüübi kombinatsioon. Klass rakendab liidest, pärides liidese abstraktsed funktsioonid.
Klass esindab objekti omadusi ja käitumist, samas kui liides sisaldab käitumist, mida klass rakendab. Liides tähistab "mida", samas kui klass edastab "kuidas".
34. Mis täpselt on kompositsioon?
Kompositsiooni saab kasutada ühenduse saavutamiseks. See näitab tugevat objektide seost sõltuvate ja sõltumatute objektide vahel, erinevalt liitmisest. Sõltuvat objekti sel juhul ei eksisteeri ja see eemaldatakse, kui lähteobjekt kustutatakse.
35. Mis täpselt on konstruktori aheldamine?
Konstruktori aheldamine on tehnika ühe konstruktori kutsumiseks teisest objektiviite suhtes. On kaks võimalust.
- Praeguses klassis olevale konstruktorile saab viidata märksõna "see" abil.
- Märksõna "super" kasutatakse baasklassi konstruktori kutsumiseks.
Järeldus
Objektorienteeritud programmeerimine eeldab programmi ülesehituse läbimõtlemist ja eelnevat ettevalmistust. Uurime, kuidas jagada nõuded põhilisteks korduvkasutatavateks klassideks, mida saab kasutada asjade eksemplaride loomiseks.
Üldiselt pakub OOP-i omaksvõtmine paremaid tulemusi andmestruktuurid ja korduvkasutatavus, mis säästab pikemas perspektiivis aega. Vaata Hashdorki intervjuude sari abi saamiseks intervjuu ettevalmistamisel.
Jäta vastus