top 30 oops interview questions
Ta vadnica vsebuje celoten nabor pogostih vprašanj in odgovorov za intervjuje z objektno usmerjenim programiranjem (OOP):
Razvoj programske opreme ima približno 70 let in več zgodovine, kjer so bili izumljeni različni jeziki, kot so FORTRAN, Pascal, C, C ++. Obstajala je vrsta izjav, ki delujejo kot ukazi, dani strojni opremi za izvajanje nekaterih osnovnih matematičnih izračunov, s čimer se oblikujejo postopkovni jeziki za načrtovanje različnih programskih aplikacij.
Z izumom interneta so bili za oblikovanje zapletenih aplikacij potrebni varni, stabilni in od platforme neodvisni ter robustni jeziki.
Objektno usmerjeno programiranje je neodvisno od platforme, prenosno, zavarovano in opremljeno z različnimi koncepti, kot so inkapsulacija, abstrakcija, dedovanje in polimorfizem.
Prednosti OOPS so ponovna uporabnost, razširljivost in modularnost, ki izboljšujejo produktivnost, lažje je vzdrževati zaradi modularnosti, hitrejši in nižji stroški razvoja zaradi ponovne uporabe kode, proizvajajo varne in visokokakovostne aplikacije.
Kaj se boste naučili:
Osnovni koncepti objektno usmerjenega programiranja
Predmetno usmerjeno programiranje vključuje intelektualne predmete, podatke in vedenje, povezano z njim, da se najdejo rešitve za poslovne težave. V programskem jeziku Java razvijalci za oblikovanje rešitev za poslovne probleme uporabljajo koncepte, kot so abstrakcija, inkapsulacija, dedovanje in polimorfizem.
Različni koncepti, kot so Abstrakcija ki ignorira nepomembne podrobnosti, Kapsulacija ki se osredotoča na minimalni zahtevek, ne da bi razkrival kakršne koli zapletenosti glede notranjih funkcionalnosti, Dedovanje podedovati lastnosti nadrejenega razreda ali izvajati več dedovanja z uporabo vmesnika in Polimorfizem ki razširja lastnosti preobremenitve metode (statični polimorfizem) in preglasitve metode (dinamični polimorfizem).
Najpogostejša vprašanja o intervjuju za OOPS
V # 1) Na kratko razložite, kaj mislite z objektno usmerjenim programiranjem v Javi?
Odgovor: OOP se ukvarja s predmeti, kot so resnični subjekti, kot so pisalo, mobilni telefon, bančni račun, ki ima stanje (podatki) in vedenje (metode).
S pomočjo dostopa je določevalcem zagotovljen dostop do teh podatkov in metod. Koncepti enkapsulacije in abstrakcije ponujajo skrivanje podatkov in dostop do bistvenega, dedovanje in polimorfizem, ki pomagajo k ponovni uporabi in preobremenitvi / preglasitvi metod in konstruktorjev, zaradi česar so aplikacije neodvisne od platforme, zaščitene in robustne z uporabo jezikov, kot je Java.
V # 2) Pojasnite Ali je Java čisti objektno usmerjeni jezik?
Odgovor: Java ni povsem čisti objektno usmerjen programski jezik. Vzroki so naslednji:
- Java podpira in uporablja primitivne vrste podatkov, kot so int, float, double, char itd.
- Primitivni tipi podatkov se shranijo kot spremenljivke ali v kup namesto na kupu.
- V Javi lahko statične metode dostopajo do statičnih spremenljivk brez uporabe predmeta, kar je v nasprotju z objektno usmerjenimi koncepti.
V # 3) Opišite razred in predmet v Javi?
Odgovor: Razred in objekt igrata bistveno vlogo v objektno usmerjenih programskih jezikih, kot je Java.
- Razred je prototip ali predloga, ki ima stanje in vedenje, ki ga objekt podpira in se uporablja pri ustvarjanju predmetov.
- Objekt je primerek razreda, na primer, Človek je razred z državo, ki ima vretenčni sistem, možgane, barvo in višino in ima vedenja, kot so canThink (), ableToSpeak () itd.
V # 4) Kakšne so razlike med razredom in predmeti v Javi?
Odgovor: Sledi nekaj glavnih razlik med razredom in predmeti v Javi:
Razred | Predmet |
---|---|
Primeri tečaja v resničnem življenju so lahko • Recept za pripravo hrane. • Modri odtisi za avtomobilski motor. | Primeri predmeta v resničnem življenju so lahko • Hrana, pripravljena po receptu. • Motor izdelan po modrih odtisih. |
Razred je logična entiteta | Predmet je fizična entiteta |
Razred je predloga, iz katere je mogoče ustvariti predmet | Objekt je primerek razreda |
Razred je prototip, ki ima stanje in obnašanje podobnih predmetov | Predmeti so entitete, ki obstajajo v resničnem življenju, kot so mobilni, miški ali intelektualni predmeti, kot je bančni račun |
Razred se razglasi s ključno besedo razreda, kot je ime razreda {} | Predmet se ustvari z novo ključno besedo kot Employee emp = new Employee (); |
Med ustvarjanjem razreda ni dodeljevanja pomnilnika | Med ustvarjanjem predmeta se predmetu dodeli pomnilnik |
Z uporabo ključne besede class je definiran samo enosmerni razred | Ustvarjanje predmetov je mogoče na več načinov, na primer z uporabo nove ključne besede, metode newInstance (), klona () in tovarniške metode. |
V # 5) Zakaj je potrebno objektno usmerjeno programiranje?
Odgovor: OOP ponuja specifikatorje dostopa in funkcije za skrivanje podatkov za večjo varnost in nadzor dostopa do podatkov, preobremenitev je mogoče doseči s preobremenitvijo funkcij in operaterjev.
Odvečnost podatkov, vzdrževanje kode, varnost podatkov in prednost konceptov, kot so kapsulacija, abstrakcija, polimorfizem in dedovanje v objektno usmerjenem programiranju, zagotavljajo prednost pred prej uporabljenimi proceduralnimi programskimi jeziki.
V # 6) Razložite abstrakcijo s primerom v realnem času.
Odgovor: Abstrakcija v objektno usmerjenem programiranju pomeni skrivanje zapletenih notranjosti, vendar izpostaviti samo bistvene značilnosti in vedenje glede na kontekst. V resničnem življenju je primer abstrakcije spletni nakupovalni voziček, recimo na katerem koli spletnem mestu za e-poslovanje. Ko izberete izdelek in naročite knjigo, vas zanima, ali ga pravočasno prejmete.
Kako se stvari dogajajo, ni tisto, kar vas zanima, saj je zapleteno in skrito. To je znano kot abstrakcija. Podobno vzemimo primer bankomata, pri čemer je zapletenost notranjih elementov, kako bremenijo denar z vašega računa, skrita, denar pa prejemate po omrežju. Podobno je pri avtomobilih izjemno zapleteno, kako motor zaradi bencina poganja motor.
V # 7) Navedite nekaj primerov v realnem času in razložite dedovanje.
Odgovor: Dedovanje pomeni, da en razred (podrazred) pridobi lastnosti drugega razreda (super razred) z dedovanjem. V resničnem življenju vzemite primer dedovanja običajnega kolesa, kjer je to roditeljski razred, športno kolo pa je lahko otroški razred, kjer je športno kolo podedovalo lastnosti in vedenje vrtljivih koles s pedali prek zobnikov kot običajno kolo.
V # 8) Kako na Polvi deluje polimorfizem, razložite s primeri iz resničnega življenja?
Odgovor: Polimorfizem je sposobnost več oblik ali sposobnost metode za različne stvari. V resničnem življenju se ista oseba, ki opravlja različne naloge, obnaša drugače. V službi je zaposlen, doma je oče, med šolanjem ali po šolanju je študent, ob vikendih igra kriket in je igralec na igrišču.
najboljši pretvornik youtube v mp3 za mac
V Javi obstajata dve vrsti polimorfizma
- Čas prevajanja polimorfizem: To se doseže s preobremenitvijo metode ali preobremenitvijo operaterja.
- Polimorfizem med izvajanjem: To dosežemo s preglasitvijo metode.
V # 9) Koliko vrst dedovanja je prisotnih?
Odgovor: Spodaj so navedene različne vrste dedovanja:
- Enkratno dedovanje: Razred enega samega otroka podeduje značilnosti enostarševskega razreda.
- Večkratno dedovanje: En razred podeduje funkcije več kot enega osnovnega razreda in v Javi ni podprt, vendar lahko razred implementira več kot en vmesnik.
- Dedovanje na več ravneh: Razred lahko podeduje izpeljani razred, zaradi česar je osnovni razred za nov razred, na primer, Otrok podeduje vedenje po očetu, oče pa je lastnosti podedoval po očetu.
- Hierarhično dedovanje: En razred podeduje več podrazredov.
- Hibridno dedovanje: To je kombinacija ene in več dediščin.
V # 10) Kaj je vmesnik?
Odgovor: Vmesnik je podoben razredu, kjer ima lahko metode in spremenljivke, vendar njegove metode nimajo telesa, temveč samo podpis, znan kot abstraktna metoda. Spremenljivke, prijavljene v vmesniku, so lahko privzeto javne, statične in končne. Vmesnik se v Javi uporablja za abstrakcijo in več dedovanja, kjer lahko razred implementira več vmesnikov.
V # 11) Ali lahko razložite prednosti abstrakcije in dedovanja?
Odgovor: Abstrakcija uporabniku razkrije samo bistvene podrobnosti in ignorira ali skrije nepomembne ali zapletene podrobnosti. Z drugimi besedami, abstrakcija podatkov razkrije vmesnik in skrije podrobnosti o izvedbi. Java izvaja abstrakcijo s pomočjo vmesnikov in abstraktnih razredov. Prednost abstrakcije je, da olajša ogled stvari z zmanjšanjem ali skrivanjem zahtevnosti izvedbe.
Podvajanju kode se izognemo in povečamo njeno ponovno uporabo. Uporabniku se razkrijejo le bistvene podrobnosti in izboljša varnost aplikacije.
Dedovanje je, če podrejeni razred podeduje funkcionalnost (vedenje) nadrejenega razreda. Kode, napisane v nadrejenem razredu, nam ni treba pisati za ponovno delovanje v otroškem razredu in s tem olajšati ponovno uporabo kode. Koda postane tudi berljiva. Dedovanje se uporablja tam, kjer obstaja 'povezava'. Primer: Hyundai je avto ALI MS Word je programske opreme.
V # 12) Kakšna je razlika med razširitvami in izvedbami?
Odgovor: Ključna beseda extends in implements se uporablja za dedovanje, vendar na različne načine.
Razlike med ključnimi besedami Extends in Implements v Javi so pojasnjene spodaj:
Razširja | Izvaja |
---|---|
Razred lahko razširi drug razred (otrok, ki podaljša starša, tako da podeduje njegove značilnosti). Vmesnik tudi podeduje (z uporabo ključne besede razširi) drug vmesnik. | Razred lahko izvaja vmesnik |
Podrazred, ki razširja super razred, morda ne bo preglasil vseh metod super razreda | Razred, ki izvaja vmesnik, mora izvajati vse metode vmesnika. |
Razred lahko razširi samo en super razred. | Razred lahko izvaja poljubno število vmesnikov. |
Vmesnik lahko razširi več kot en vmesnik. | Vmesnik ne more izvajati nobenega drugega vmesnika. |
Sintaksa: razred Child podaljša razred Parent | Sintaksa: razred Hybrid izvaja Rose |
V # 13) Kateri so različni modifikatorji dostopa v Javi?
Odgovor: Modifikatorji dostopa v Javi nadzorujejo obseg dostopa razreda, konstruktorja, spremenljivke, metode ali podatkovnega člana. Različne vrste modifikatorjev dostopa so naslednje:
- Privzeti modifikator dostopa je brez podatkovnih članov, razreda in metod specifikatorja dostopa in so dostopni v istem paketu.
- Modifikatorji zasebnega dostopa so označeni s ključno besedo private in so dostopni samo znotraj razreda, razred pa iz istega paketa ne.
- Modifikatorji zaščitenega dostopa lahko dostopni v istem paketu ali podrazredih iz različnih paketov.
- Modifikatorji javnega dostopa so dostopne od vsepovsod.
V # 14) Pojasnite razliko med abstraktnim razredom in metodo?
Odgovor: Nekaj razlik med abstraktnim razredom in abstraktno metodo v Javi:
Povzetek | Povzetek metode |
---|---|
Objekta ni mogoče ustvariti iz abstraktnega razreda. | Abstraktna metoda ima podpis, vendar nima telesa. |
Podrazred je ustvaril ali podedoval abstraktni razred za dostop do članov abstraktnega razreda. | V njihovem podrazredu je obvezno preglasiti abstraktne metode superrazreda. |
Povzetek lahko vsebuje abstraktne metode ali ne abstraktne metode. | Predavanje, ki vsebuje abstraktno metodo, naj postane abstraktni. |
V # 15) Kakšne so razlike med metodo in konstruktorjem?
Odgovor: Sledijo razlike med konstruktorji in metodami v Javi:
Konstruktorji | Metode |
---|---|
Ime konstruktorja se mora ujemati z imenom razreda. | Metode ne smejo imeti istega imena kot ime razreda. |
Uporabljajo se za ustvarjanje, inicializacijo in dodeljevanje pomnilnika predmetu. | Metode se uporabljajo za izvajanje določenih stavkov, zapisanih v njih. |
Sistem implicitno prikliče konstruktorje, kadar koli se ustvarijo predmeti. | Metode se prikličejo, ko je poklican. |
Prikličejo jih z uporabo nove ključne besede med ustvarjanjem primerka razreda (predmeta). | Metode se prikličejo med izvajanjem programa. |
Konstruktor nima vrste vrnitve. | Metoda ima vrsto vrnitve. |
Konstruktorja podrazred ne more podedovati. | Metode lahko podeduje podrazred. |
V # 16) Kaj je konstruktor v Javi?
Odgovor: Konstruktor je metoda brez vrnjene vrste in ima njeno ime enako kot ime razreda. Ko ustvarimo objekt, privzeti konstruktor med prevajanjem kode Java dodeli pomnilnik za objekt. Konstruktorji se uporabljajo za inicializacijo predmetov in nastavitev začetnih vrednosti za atribute objektov.
V # 17) Koliko vrst konstruktorjev je mogoče uporabiti v Javi? Prosim razloži.
Odgovor: V osnovi obstajajo tri vrste konstruktorjev v Javi.
To so:
- Privzeti konstruktor: Ta konstruktor je brez kakršnega koli parametra in se prikliče vsakič, ko ustvarite primerek razreda (predmeta). Če je razred Employee, bo sintaksa privzetega konstruktorja Employee ().
- No-arg konstruktor: Kot že ime pove, se konstruktor brez kakršnega koli argumenta imenuje no-arg konstruktor.
- Parametrizirani konstruktor: Konstruktor s številnimi parametri se imenuje parametrizirani konstruktor. Navesti morate argumente, torej začetne vrednosti glede na podatkovni tip parametrov v tem konstruktorju.
V # 18) Zakaj se v Javi uporablja nova ključna beseda?
vprašanja za intervju s spletnimi storitvami za izkušene
Odgovor: Ko ustvarimo primerek razreda, torej predmete, uporabimo ključno besedo Java novo . Dodeljuje pomnilnik na območju kopice, kjer JVM rezervira prostor za objekt. Interno prikliče tudi privzeti konstruktor.
Sintaksa:
Class_name obj = new Class_name();
V # 19) Kdaj uporabljate super ključno besedo?
Odgovor: Super je ključna beseda Java, ki se uporablja za identifikacijo ali sklicevanje na nadrejeni (osnovni) razred.
- Super lahko uporabimo za dostop do konstruktorja super razreda in klicnih metod super razreda.
- Če so imena metod enaka v super razredu in podrazredu, se za sklicevanje na super razred prikaže super uporabljena je ključna beseda.
- Za dostop do istoimenskih podatkovnih članov nadrejenega razreda, če so prisotni v nadrejenem in podrejenem razredu.
- Super se lahko uporablja za izrecni klic no-arg in parametriziranih konstruktorjev nadrejenega razreda.
- Dostop do metode nadrejenega razreda je mogoč z uporabo super , ko ima podrejeni razred metodo preglasjeno.
V # 20) Kdaj uporabljate to ključno besedo?
Odgovor: to Ključna beseda v Javi se nanaša na trenutni objekt v konstruktorju ali v metodi.
- Ko imajo atributi razreda in parametrizirani konstruktorji isto ime, to uporabljena je ključna beseda.
- Ključne besede to prikliče konstruktor trenutnega razreda, metodo trenutnega razreda, vrne objekt trenutnega razreda, posreduje argument v konstruktor in klic metode.
V # 21) Kakšna je razlika med polimorfizmom med izvajanjem in časom prevajanja?
Odgovor: Polimorfizem med izvajanjem in prevajanjem sta dve različni vrsti polimorfizma. Njihove razlike so pojasnjene spodaj:
Prevedite polimorfizem časa | Polimorfizem med izvajanjem |
---|---|
Klic razreši prevajalnik v polimorfizmu časa prevajanja. | Prevajalnik v izvajalnem polimorfizmu ne razreši klica. |
Znano je tudi kot statična vezava in preobremenitev metode. | Znano je tudi kot dinamično, pozno in preglasitev metode. |
Metode istega imena z različnimi parametri ali metode z enakim podpisom in različnimi vrstami vrnitve so polimorfizem časa prevajanja. | Metoda istega imena z enakimi parametri ali podpisom, povezanim v različnih razredih, se imenuje preglasitev metode. |
To se doseže s preobremenitvijo funkcije in operaterja. | To lahko dosežemo s kazalci in navideznimi funkcijami. |
Kot vse stvari se izvajajo v času prevajanja. polimorfizem v času prevajanja je manj prilagodljiv. | Ko se stvari izvajajo v času izvajanja, je polimorfizem med izvajanjem bolj prožen. |
V # 22) Katere objektno usmerjene funkcije se uporabljajo v Javi?
Odgovor: Koncept uporabe predmeta v programskem jeziku Java koristi z uporabo objektno usmerjenih konceptov, kot je enkapsulacija za povezovanje stanja in vedenja predmeta, zagotavlja dostop do podatkov s specifikacijami dostopa, funkcije, kot so abstrakcija pri skrivanju informacij, dedovanje za razširitev stanja in vedenje osnovnih razredov do podrejenih razredov, polimorfizem časa prevajanja in izvajalnega okolja za preobremenitev metode oziroma preglasitev metode.
V # 23) Kaj je preobremenitev metode?
Odgovor: Če imajo dve ali več metod z istim imenom različno število parametrov ali različne vrste parametrov, lahko te metode imajo ali pa nimajo različnih vrst vrnitve, potem so to preobremenjene metode, značilnost pa je preobremenitev metode. Preobremenjenost metode se imenuje tudi polimorfizem časa prevajanja.
V # 24) Kaj je preglasitev metode?
Odgovor: Kadar ima metoda podrazreda (izpeljani, podrejeni razred) enako ime, parametre (podpis) in isti tip vrnitve kot metoda v svojem super razredu (osnovni, nadrejeni razred), potem naj bi bila metoda v podrazredu preglašena metoda v superrazredu. Ta funkcija je znana tudi kot polimorfizem med izvajanjem.
V # 25) Pojasnite preobremenitev konstruktorja.
Odgovor: Več kot en konstruktor z različnimi parametri, tako da je mogoče z vsakim konstruktorjem izvajati različne naloge, je znan kot preobremenitev konstruktorja. S preobremenitvijo konstruktorja lahko predmete ustvarjamo na različne načine. Različni razredi zbirk v Java API so primeri preobremenitve konstruktorja.
V # 26) Katere vrste argumentov je mogoče uporabiti v Javi?
Odgovor: Za metode in funkcije Java lahko podatke o parametrih pošiljamo in prejemamo na različne načine. Če je metodaB () poklicana iz metodeA (), je metodaA () funkcija klicatelja, metodaB () pa funkcija, so argumenti, poslani z metodoA (), dejanski argumenti, parametri metodeB () pa formalni argumenti.
- Pokliči po vrednosti: Spremembe formalnega parametra (parametri metodeB ()) se ne pošljejo nazaj klicatelju (metodaA ()). Ta metoda se imenuje klic po vrednosti . Java podpira klic po vrednosti.
- Pokliči po referenci: Spremembe formalnega parametra (parametri metodeB ()) se pošljejo nazaj kličočemu (parametri metodeB ()).
- Vse spremembe formalnih parametrov (parametri metodeB ()) se odražajo v dejanskih parametrih (argumenti, poslani z metodoA ()). To se imenuje klic s sklicem.
V # 27) Ločite med statično in dinamično vezavo?
Odgovor: Razlike med statično in dinamično vezavo so razložene v spodnji tabeli.
Statična vezava | Dinamična vezava |
---|---|
Statična vezava v Javi uporablja vrsto polj in razred kot ločljivost. | Dinamična vezava v Javi uporablja objekt za razreševanje vezave. |
Preobremenitev metode je primer statične vezave. | Preglasitev metode je primer dinamične vezave. |
Statična vezava se reši v času prevajanja. | Dinamična vezava se reši med izvajanjem. |
Metode in spremenljivke, ki uporabljajo statično vezavo, so zasebni, končni in statični tipi. | Navidezne metode uporabljajo dinamično vezavo. |
V # 28) Ali lahko razložite osnovni razred, podrazred in superrazred?
Odgovor: Osnovni razred, podrazred in super razred v Javi so razloženi na naslednji način:
- Osnovni razred ali nadrejeni razred je super razred in je razred, iz katerega izhaja podrazred ali podrejeni razred.
- Podrazred je razred, ki podeduje atribute (lastnosti) in metode (vedenje) iz osnovnega razreda.
V # 29) Ali je v Javi podprto preobremenitev operaterja?
Odgovor: Java ne podpira preobremenitve operaterja,
- Zaradi tolmača se bolj potrudi, da bi razumel dejansko funkcionalnost operaterja, zaradi česar je koda zapletena in težko sestavljiva.
- Preobremenitev operaterja naredi programe bolj nagnjene k napakam.
- Značilnost preobremenitve operaterja pa je mogoče doseči s preobremenitvijo metode na preprost, jasen in brez napak način.
V # 30) Kdaj se uporablja metoda dokončanja?
Odgovor: dokončati metoda se pokliče tik preden bo predmet kmalu zbran smeti. Ta metoda razveljavi, da zmanjša uhajanje pomnilnika in izvede čiščenje z odstranjevanjem sistemskih virov.
V # 31) Pojasnite žetone.
Odgovor: Žetoni v programu Java so najmanjši elementi, ki jih prevajalnik prepozna. Identifikatorji, ključne besede, dobesedne besede, operatorji in ločila so primeri žetonov.
Zaključek
Objektno zasnovani koncepti programiranja so sestavni del za razvijalce, avtomatizacijo in ročne preizkuševalce, ki oblikujejo okvir za avtomatizacijo testiranja za testiranje aplikacije ali razvoj aplikacij s programskim jezikom Java.
Poglobljeno razumevanje je obvezno za vse objektno usmerjene funkcije, kot so razred, objekt, abstrakcija, inkapsulacija, dedovanje, polimorfizem in uporaba teh konceptov v programskem jeziku, kot je Java, za doseganje zahtev kupcev.
Poskušali smo zajeti najpomembnejša predmetno usmerjena vprašanja s programskega intervjuja in s primeri dati ustrezne odgovore.
Želimo vam vse dobro za vaš prihajajoči intervju!
Priporočeno branje
- OOP Java: Uvod v objektno usmerjeno programiranje v Javi
- Top 20 programov Java Interview za programiranje in kodiranje Intervjuja
- Najboljših 50+ osnovnih vprašanj in odgovorov za Java
- Vadnica Java vmesnika in abstraktnega razreda s primeri
- Kapsulacija v Javi: popolna vadnica s primeri
- Kaj je abstrakcija v Javi - naučite se s primeri
- Koncepti OOPS v jeziku C #: Vadnica koncepta objektno usmerjenega programiranja
- Koncepti Python OOP (razredi, predmeti in dedovanje Python)