top 30 oops interview questions
Denne opplæringen gir et komplett sett med ofte stilte spørsmål og svar om intervjuer med objektorientert programmering (OOP):
Programvareutvikling har rundt 70 pluss års historie der forskjellige språk som FORTRAN, Pascal, C, C ++ ble oppfunnet. Det var en rekke uttalelser som fungerer som kommandoer gitt til maskinvare for å utføre noen grunnleggende matematiske beregninger, og lage prosessuelle språk for å designe forskjellige programvareapplikasjoner.
Med oppfinnelsen av Internett var det nødvendig med sikre, stabile og plattformuavhengige og robuste språk for å designe komplekse applikasjoner.
Objektorientert programmering er plattformuavhengig, bærbar, sikret og utstyrt med forskjellige konsepter som innkapsling, abstraksjon, arv og polymorfisme.
Fordelene med OOPS er gjenbrukbarhet, utvidbarhet og modularitet som forbedrer produktiviteten, lettere å vedlikeholde på grunn av modularitet, raskere og lavere utviklingskostnader på grunn av gjenbruk av kode, produserer sikrede applikasjoner av høy kvalitet.
Hva du vil lære:
Grunnleggende objektorienterte programmeringskonsepter
Objektorientert programmering involverer intellektuelle objekter, data og atferd knyttet til den for å bringe løsninger på forretningsproblemer. I Java-programmeringsspråk, for å designe løsninger for forretningsproblemer, bruker utviklere konsepter som abstraksjon, innkapsling, arv og polymorfisme.
Ulike begreper som Abstraksjon som ignorerer irrelevante detaljer, Innkapsling som fokuserer på hvilket minimum som kreves uten å avsløre noen kompleksitet i forhold til interne funksjoner, Arv å arve egenskaper til overordnet klasse eller implementere flere arv ved hjelp av et grensesnitt, og Polymorfisme som utvider egenskapene til metodeoverbelastning (statisk polymorfisme) og metodeoverstyring (dynamisk polymorfisme).
Ofte stilte spørsmål om OOPS-intervju
Q # 1) Forklar kort hva du mener med objektorientert programmering i Java?
Svar: OOP håndterer objekter, som virkelige enheter som penn, mobil, bankkonto som har tilstand (data) og oppførsel (metoder).
Ved hjelp av tilgang blir spesifiserte tilganger til disse dataene og metodene sikret. Konsepter for innkapsling og abstraksjon gir skjuling av data og tilgang til vesentlige ting, arv og polymorfisme hjelper til med å gjenbruke og overbelaste / overstyre kode og metoder for å gjøre applikasjoner plattformuavhengige, sikre og robuste ved hjelp av språk som Java.
Q # 2) Forklar Er Java et rent objektorientert språk?
Svar: Java er ikke et helt rent objektorientert programmeringsspråk. Følgende er årsakene:
- Java støtter og bruker primitive datatyper som int, float, double, char, etc.
- Primitive datatyper lagres som variabler eller på bunken i stedet for dyngen.
- I Java kan statiske metoder få tilgang til statiske variabler uten å bruke et objekt, i motsetning til objektorienterte konsepter.
Q # 3) Beskriv klasse og objekt i Java?
Svar: Klasse og objekt spiller en integrert rolle i objektorienterte programmeringsspråk som Java.
- Klasse er en prototype eller en mal som har tilstand og oppførsel som støttes av et objekt og brukes til å lage objekter.
- Objektet er en forekomst av klassen, for eksempel, Mennesket er en klasse med staten som å ha et vertebral system, hjerne, farge og høyde og har oppførsel som canThink (), ableToSpeak (), etc.
Q # 4) Hva er forskjellen mellom klasse og objekter i Java?
Svar: Følgende er noen få store forskjeller mellom klasse og objekter i Java:
Klasse | Gjenstand |
---|---|
Virkelige eksempler på klasse kan være en • En oppskrift for å tilberede mat. • Blå utskrifter for en bilmotor. | Eksempler på virkeligheten av Object kan være • En mat tilberedt etter oppskrift. • Motor konstruert i henhold til blåtrykk. |
Klasse er en logisk enhet | Objekt er fysisk enhet |
Klasse er en mal som objektet kan opprettes fra | Objekt er en forekomst av klassen |
Klasse er en prototype som har tilstanden og oppførselen til lignende objekter | Objekter er enheter som eksisterer i virkeligheten, for eksempel mobile, mus eller intellektuelle gjenstander som bankkonto |
Klassen er erklært med klassens nøkkelord som klasse Klassenavn {} | Objekt opprettes via nytt nøkkelord som Employee emp = new Employee (); |
Under kursopprettelsen er det ingen fordeling av minne | Under oppretting av objekt blir minne tildelt objektet |
Det er bare enveisklasse som er definert ved hjelp av klassens nøkkelord | Objektoppretting kan gjøres på mange måter, for eksempel ved å bruke nytt søkeord, newInstance () -metode, klone () og fabrikkmetode. |
Q # 5) Hvorfor er det behov for objektorientert programmering?
Svar: OOP gir tilgangsspesifikatorer og dataskjermingsfunksjoner for mer sikkerhet og kontroll av datatilgang, overbelastning kan oppnås med funksjon og overbelastning av operatøren, Code Reuse er mulig ettersom allerede opprettede objekter i ett program kan brukes i andre programmer.
Dataredundans, vedlikehold av kode, datasikkerhet og fordeler med begreper som innkapsling, abstraksjon, polymorfisme og arv i objektorientert programmering gir en fordel i forhold til tidligere brukte prosessuelle programmeringsspråk.
Q # 6) Forklar abstraksjon med et sanntidseksempel.
Svar: Abstraksjon i objektorientert programmering betyr å skjule komplekse indre, men å bare avsløre essensielle egenskaper og atferd med hensyn til kontekst. I det virkelige liv er et eksempel på abstraksjon en handlekurv på nettet, for eksempel på et hvilket som helst e-handelssted. Når du har valgt et produkt og bestiller, er du bare interessert i å motta produktet i tide.
Hvordan ting skjer er ikke det du er interessert i, da det er komplekst og holdes skjult. Dette er kjent som abstraksjon. På samme måte, ta eksemplet med minibank, hvor kompleksiteten til internals for hvordan penger belastes fra kontoen din blir skjult, og du mottar kontanter via et nettverk. Tilsvarende for biler er hvordan bensin får motoren til å kjøre bilen ekstremt komplisert.
Q # 7) Gi noen eksempler i sanntid og forklar Arv.
Svar: Arv betyr en klasse (underklasse) som skaffer seg egenskaper til en annen klasse (superklasse) ved arv. I det virkelige liv kan du ta et eksempel på arv av en vanlig sykkel der det er en foreldreklasse og en sportssykkel kan være en barneklasse, der sportssykkel har arvet egenskaper og oppførsel av roterende hjul med pedaler via gir som en vanlig sykkel.
Q # 8) Hvordan polymorfisme fungerer i Java, forklar med eksempler fra virkeligheten?
Svar: Polymorfisme er en evne til å ha flere former eller evne til metoden til å gjøre forskjellige ting. I det virkelige liv oppfører den samme personen som utfører forskjellige plikter forskjellig. På kontoret er han ansatt, hjemme, han er far, i løpet av eller etter skoletid er han student, i helgene spiller han cricket og er spiller på lekeplassen.
topp 5 spionapps for android
I Java er det to typer polymorfisme
- Kompileringstid polymorfisme: Dette oppnås ved metodeoverbelastning eller operatøroverbelastning.
- Runtime polymorfisme: Dette oppnås ved å overstyre metoden.
Sp # 9) Hvor mange typer arv er til stede?
Svar: Ulike typer arv er listet opp nedenfor:
- Enkeltarv: Enebarnsklassen arver karakteristikkene til eneforelderklassen.
- Flere arv: En klasse arver funksjoner av mer enn en basisklasse og støttes ikke i Java, men klassen kan implementere mer enn ett grensesnitt.
- Multilevel Arv: En klasse kan arve fra en avledet klasse, noe som gjør den til en basisklasse for en ny klasse, for eksempel, et barn arver oppførsel fra faren, og faren har arvet egenskaper fra faren.
- Hierarkisk arv: Én klasse arves av flere underklasser.
- Hybrid arv: Dette er en kombinasjon av enkle og flere arv.
Q # 10) Hva er grensesnitt?
Svar: Grensesnittet ligner klassen der det kan ha metoder og variabler, men metodene har ikke en kropp, bare en signatur kjent som den abstrakte metoden. Variabler som er deklarert i grensesnittet kan være offentlige, statiske og endelige som standard. Grensesnitt brukes i Java for abstraksjon og flere arv, der klassen kan implementere flere grensesnitt.
Sp # 11) Kan du forklare fordelene med abstraksjon og arv?
Svar: Abstraksjon avslører bare viktige detaljer for brukeren og ignorerer eller skjuler irrelevante eller komplekse detaljer. Med andre ord avslører dataabstraksjon grensesnittet og skjuler implementeringsdetaljer. Java utfører abstraksjon ved hjelp av grensesnitt og abstrakte klasser. Fordelen med abstraksjon er at det er enkelt å se på ting ved å redusere eller skjule kompleksiteten ved implementering.
Kopiering av kode unngås, og det øker gjenbrukbarhet. Bare viktige detaljer blir avslørt for brukeren og forbedrer sikkerheten til applikasjonen.
Arv er der barneklassen arver funksjonalitet (oppførsel) til foreldreklassen. Vi trenger ikke skrive kode en gang skrevet i foreldreklassen for funksjonalitet igjen i underordnede klasse og dermed gjøre det lettere å gjenbruke koden. Koden blir også lesbar. Arv brukes der det er ”en” relasjon. Eksempel: Hyundai er en bil ELLER MS Word er en programvare.
Q # 12) Hva er forskjellen mellom forlengere og redskaper?
Svar: Både strekker og implementerer nøkkelord brukes til arv, men på forskjellige måter.
Forskjellene mellom søkeordene Extends and Implements i Java forklares nedenfor:
Strekker | Redskaper |
---|---|
En klasse kan utvide en annen klasse (barn som utvider foreldrene ved å arve hans egenskaper). Grensesnitt arver også (ved hjelp av nøkkelord utvider) et annet grensesnitt. | En klasse kan implementere et grensesnitt |
Underklasse som utvider superklassen overstyrer kanskje ikke alle superklassemetodene | Klasse implementeringsgrensesnitt må implementere alle metodene i grensesnittet. |
Klassen kan bare utvide en enkelt superklasse. | Klassen kan implementere et hvilket som helst antall grensesnitt. |
Grensesnitt kan utvide mer enn ett grensesnitt. | Grensesnitt kan ikke implementere noe annet grensesnitt. |
Syntaks: klasse Barn utvider klassen Forelder | Syntaks: klasse Hybrid-redskaper Rose |
Q # 13) Hva er forskjellige tilgangsmodifikatorer i Java?
Svar: Tilgangsmodifikatorer i Java styrer tilgangsområdet til klasse, konstruktør, variabel, metode eller datamedlem. Ulike typer tilgangsmodifikatorer er som følger:
- Standard tilgangsmodifikator er uten tilgangsspesifiserende datamedlemmer, klasse og metoder, og er tilgjengelig i samme pakke.
- Modifikatorer for privat tilgang er merket med nøkkelordet privat, og er bare tilgjengelig innen klassen, og ikke engang tilgjengelig for klassen fra samme pakke.
- Beskyttede tilgangsmodifikatorer kan være tilgjengelig i samme pakke eller underklasser fra forskjellige pakker.
- Modifikatorer for offentlig tilgang er tilgjengelig fra hvor som helst.
Sp # 14) Forklar forskjellen mellom abstrakt klasse og metode?
Svar: Følgende er noen forskjeller mellom abstrakt klasse og abstrakt metode i Java:
hvordan du fjerner element fra matrisen i java
Abstrakt klasse | Abstrakt metode |
---|---|
Objekt kan ikke opprettes fra den abstrakte klassen. | Abstrakt metode har en signatur, men har ikke en kropp. |
Underklasse opprettet eller arver abstrakt klasse for å få tilgang til medlemmer av abstrakt klasse. | Det er obligatorisk å overstyre abstrakte superklassemetoder i underklassen sin. |
Abstrakt klasse kan inneholde abstrakte metoder eller ikke-abstrakte metoder. | Klasse som inneholder abstrakt metode bør gjøres abstrakt klasse. |
Sp # 15) Hva er forskjellene mellom metode og konstruktør?
Svar: Følgende er forskjellene mellom konstruktører og metoder i Java:
Konstruktører | Metoder |
---|---|
Konstruktørens navn skal samsvare med det i klassen. | Metoder skal ikke ha samme navn som klassenavn. |
De brukes til å lage, initialisere og tildele minne til objektet. | Metoder brukes til å utføre visse uttalelser skrevet inne i dem. |
Konstruktører påkalles implisitt av systemet når objekter opprettes. | Metoder påkalles når det kalles. |
De påkalles ved hjelp av et nytt nøkkelord mens de oppretter en forekomst av klassen (objektet). | Metoder påkalles under programutførelse. |
Konstruktør har ikke returtype. | Metoden har en returtype. |
Konstruktør kan ikke arves av underklassen. | Metoder kan arves av en underklasse. |
Spørsmål nr. 16) Hva er en konstruktør i Java?
Svar: Constructor er en metode uten returtype og har navnet det samme som klassenavnet. Når vi lager et objekt, tildeler en standardkonstruktør minne til et objekt under kompilering av Java-kode. Konstruktører brukes til å initialisere objekter og angi startverdier for objektattributter.
Q # 17) Hvor mange typer konstruktører kan brukes i Java? Vennligst forklar.
Svar: Det er i utgangspunktet tre typer konstruktører i Java.
Disse er:
- Standard konstruktør: Denne konstruktøren er uten noen parameter og påkaller hver gang du oppretter en forekomst av en klasse (objekt). Hvis en klasse er en ansatt, vil syntaksen til standardkonstruktøren være ansatt ().
- No-arg konstruktør: Som navnet antyder, kalles en konstruktør uten noe argument en ikke-arg-konstruktør.
- Parameterisert konstruktør: Konstruktør med et antall parametere kalles en parameterisert konstruktør. Du må oppgi argumenter, dvs. innledende verdier med hensyn til datatypen til parametere i den konstruktøren.
Sp # 18) Hvorfor brukes nye søkeord i Java?
Svar: Når vi oppretter en forekomst av klasse, dvs. objekter, bruker vi Java-nøkkelordet ny . Den tildeler minne i haugområdet der JVM reserverer plass til et objekt. Internt påkaller den også standardkonstruktøren.
Syntaks:
Class_name obj = new Class_name();
Spørsmål nr. 19) Når bruker du supernøkkelordet?
Svar: Super er et Java-nøkkelord som brukes til å identifisere eller henvise til overordnet (base) klasse.
- Vi kan bruke super for å få tilgang til superklassekonstruktører og anropsmetoder til superklassen.
- Når metodenavn er de samme i superklasse og underklasse, for å referere superklasse, blir super nøkkelord brukes.
- For å få tilgang til data med samme navn medlemmer av foreldreklassen når de er til stede i foreldre- og barneklassen.
- Super kan brukes til å ringe eksplisitt til ikke-arg og parametriserte konstruktører i overordnet klasse.
- Foreldreklassemetoden kan gjøres ved hjelp av super , når barneklassen har tilsidesatt metode.
Spørsmål nr. 20) Når bruker du dette nøkkelordet?
Svar: dette nøkkelord i Java refererer til gjeldende objekt i konstruktøren eller i metoden.
- Når klasseegenskaper og parametriserte konstruktører begge har samme navn, dette nøkkelord brukes.
- Nøkkelord dette påkaller gjeldende klassekonstruktør, metode for gjeldende klasse, returnerer objektet til gjeldende klasse, sender et argument i konstruktøren og metodeanrop.
Q # 21) Hva er forskjellen mellom kjøretid og kompileringstidspolymorfisme?
Svar: Både kjøretid og kompileringstidspolymorfisme er to forskjellige typer polymorfisme. Forskjellene deres er forklart nedenfor:
Kompilere tidspolymorfisme | Runtime polymorfisme |
---|---|
Anrop løses av en kompilator i kompileringstidspolymorfisme. | Anrop løses ikke av kompilatoren i løpetid polymorfisme. |
Det er også kjent som statisk binding og metodeoverbelastning. | Det er også kjent som dynamisk, sent og metodeoverstyring. |
Metoder med samme navn med forskjellige parametere eller metoder med samme signatur og forskjellige returtyper er kompileringstidspolymorfisme. | Metode med samme navn med samme parametere eller signatur assosiert i forskjellige klasser kalles metodeoverstyring. |
Det oppnås ved overbelastning av funksjon og operatør. | Det kan oppnås med pekere og virtuelle funksjoner. |
Ettersom alle ting blir utført på kompileringstid. kompileringstid polymorfisme er mindre fleksibel. | Når ting kjøres på kjøretid, er polymorfisme i løpetid mer fleksibel. |
Q # 22) Hvilke objektorienterte funksjoner brukes i Java?
Svar: Et begrep om å bruke et objekt i Java-programmeringsspråk, fordeler ved bruk av objektorienterte konsepter som innkapsling for å binde sammen tilstanden og oppførselen til et objekt, sikrer datatilgang med tilgangsspesifikatorer, funksjoner som abstraksjon i skjuling av informasjon, arv for å utvide tilstanden , og oppførsel av baseklasser til barneklasser, kompileringstid og kjøretidspolymorfisme for henholdsvis metodeoverbelastning og metodeoverstyring.
Q # 23) Hva er metodeoverbelastning?
Svar: Når to eller flere metoder med samme navn enten har et annet antall parametere eller forskjellige typer parametere, kan disse metodene ha eller ikke ha forskjellige returtyper, så er de overbelastede metoder, og funksjonen er metodeoverbelastning. Metodeoverbelastning kalles også polymorfisme for kompileringstid.
Q # 24) Hva er metode som overstyrer?
Svar: Når en metode av underklasse (avledet, underordnet klasse) har samme navn, parametere (signatur) og samme returtype som metoden i superklassen (base, overordnet klasse), sies det at metoden i underklassen blir overstyrt metoden i superklassen. Denne funksjonen er også kjent som runtime polymorphism.
Q # 25) Forklar overbelastning av konstruktør.
Svar: Mer enn en konstruktør som har forskjellige parametere, slik at forskjellige oppgaver kan utføres med hver konstruktør, er kjent som konstruktøroverbelastning. Med konstruktøroverbelastning kan objekter opprettes på forskjellige måter. Ulike samlingsklasser i Java API er eksempler på konstruktøroverbelastning.
Spørsmål nr. 26) Hvilke argumenter kan brukes i Java?
Svar: For Java-metoder og -funksjoner kan parameterdata sendes og mottas på forskjellige måter. Hvis metodeB () kalles fra metodeA (), er metodeA () en innringerfunksjon og metodeB () kalles funksjon, argumenter sendt etter metodeA () er faktiske argumenter og parametere for metodeB () kalles formelle argumenter.
- Ring etter verdi: Endringer gjort i formell parameter (parametere for metode B ()) sendes ikke tilbake til innringeren (metode A ()), Denne metoden kalles ring etter verdi . Java støtter samtalen etter verdi.
- Ring etter referanse: Endringer i formell parameter (parametere for metode B ()) sendes tilbake til den som ringer (parametere for metode B ()).
- Eventuelle endringer i formelle parametere (parametere for metode B ()) gjenspeiles i faktiske parametere (argumenter sendt etter metode A ()). Dette kalles call by reference.
Q # 27) Skille mellom statisk og dynamisk binding?
Svar: Forskjellene mellom statisk og dynamisk binding er forklart i tabellen nedenfor.
Statisk binding | Dynamisk binding |
---|---|
Statisk binding i Java bruker type felt og klasse til som en oppløsning. | Dynamisk binding i Java bruker objekt for å løse binding. |
Metodeoverbelastning er et eksempel på statisk binding. | Metodeoverstyring er et eksempel på dynamisk binding. |
Statisk binding blir løst ved kompileringstidspunktet. | Dynamisk binding blir løst ved kjøretid. |
Metoder og variabler ved bruk av statisk binding er private, endelige og statiske typer. | Virtuelle metoder bruker dynamisk binding. |
Spørsmål nr. 28) Kan du forklare basisklasse, underklasse og superklasse?
Svar: Baseklasse, underklasse og superklasse i Java forklares som følger:
- Baseklasse eller foreldreklasse er en superklasse og er en klasse som underklasse eller barneklasse er avledet fra.
- Underklasse er en klasse som arver attributter (egenskaper) og metoder (oppførsel) fra basisklassen.
Spørsmål nr. 29) Støttes overbelastning av operatører i Java?
Svar: Overbelastning av operatører støttes ikke av Java,
- Det gjør at tolken legger mer vekt på å forstå den faktiske funksjonaliteten til operatøren som gjør koden komplisert og vanskelig å kompilere.
- Overbelastning av operatører gjør programmene mer utsatt for feil.
- Imidlertid kan funksjonen med operatøroverbelastning oppnås ved metodeoverbelastning på en enkel, klar og feilfri måte.
Spørsmål nr. 30) Når den avsluttende metoden brukes?
Svar: fullføre metoden kalles like før gjenstanden er i ferd med å samles opp søppel. Denne metoden overstyrer for å minimere minnelekkasjer, foreta oppryddingsaktiviteter ved å fjerne systemressurser.
Q # 31) Forklar om poletter.
Svar: Tokens i Java-programmet er de minste elementene som kompilatoren gjenkjenner. Identifikatorer, nøkkelord, bokstaver, operatorer og skilletegn er eksempler på tokens.
Konklusjon
Objektorienterte programmeringskonsepter er en integrert del for utviklere, automatisering samt manuelle testere som designer rammeverk for automatiseringstesting for å teste et program eller utvikle applikasjoner med Java-programmeringsspråk.
Dybdeforståelse er obligatorisk for alle objektorienterte funksjoner som klasse, objekt, abstraksjon, innkapsling, arv, polymorfisme, og å bruke disse konseptene i et programmeringsspråk som Java for å oppnå kundens krav.
Vi har prøvd å dekke de viktigste objektorienterte spørsmålene om programmeringsintervju og ga passende svar med eksempler.
Vi ønsker deg alt godt for ditt kommende intervju!
Anbefalt lesing
- OOP Java: Introduksjon til objektorientert programmering i Java
- Topp 20 Java-intervjuprogrammer for programmering og kodingsintervju
- Topp 50+ Core-intervjuspørsmål og svar
- Java-grensesnitt og abstrakt klasseopplæring med eksempler
- Innkapsling i Java: Komplett opplæring med eksempler
- Hva er abstraksjon i Java - lær med eksempler
- OOPS Concepts In C #: Object Oriented Programming Concept Tutorial
- Python OOPs-konsepter (Python-klasser, gjenstander og arv)