21 Ofte stillede OOP-interviewspørgsmål og svar at kende i dag

Objektorienteret programmering interviewspørgsmål kan hjælpe programmører og udviklere med at forbedre deres viden om nøglebegreber i programmeringsverdenen.

OOP er et af de mest nødvendige og mest nødvendige programmeringsparadigmer, der fokuserer på objekter og klasser i stedet for procedurer og funktioner.

Nogle OOP-baserede programmeringssprog er Objective-C, Java, Ada, Perl, Python, C++ og mere.

Større virksomheder søger udviklere, der er dygtige til objektorienterede tilgange såvel som mønstre.

Så hvis du planlægger at møde op til sådan en samtaleproces, skal du have en dybdegående forståelse af OOP-begreberne.

Lad os se på nogle af de ofte stillede OOP-interviewspørgsmål og -svar for at hjælpe dig med at forberede dig til interviews og tests.

Objektorienteret programmering (OOP): En oversigt

OOP er et programmeringsparadigme, der kredser om objekter. Her betragtes objekterne som instanser i den virkelige verden, som en klasse, der indeholder nogle adfærd og karakteristika, der er angivet i klasseskabelonen.

Lad os for eksempel overveje en bil. Ifølge OOPs-modellen:

  • Objekt: En bil. Det kan være af enhver type eller model, såsom den bil du ejer.
  • Klasse: Bilens model eller type, såsom BMW, Chevrolet, Kia, Audi og flere.
  • Karakteristika: Bilens farve, bilens stelnummer, motortype, geartype og mere.
  • Adfærd: Hvordan man skifter gear, hvordan man starter bilen og mere.

Her er karakteristika også kendt som egenskaber, attributter eller data, hvorimod adfærd er kendt som procedurer, metoder eller funktioner i programmeringssprog.

Så lad os starte med nogle ofte stillede OOP-interviewspørgsmål.

Hvad menes med udtrykket OOPs?

Svar: Objektorienteret programmering (OOP) er en programmeringsmodel baseret på objekter og klasser i stedet for procedurer og funktioner. Individuelle objekter er arrangeret i klasser. OOPs beskriver enheder i den virkelige verden med begreber som polymorfi, skjul, arv osv., og programmeringsparadigmer.

OOP’er binder kode og data sammen. Objekter er enheder i den virkelige verden defineret via klasser med specifikke karakteristika og adfærd, hvorimod en klasse er defineret som mønsteret for et specifikt objekt. Det er også kendt som en brugerdefineret datatype.

Dette inkluderer programmer til design og fremstilling sammen med mobilapplikationen. For eksempel kan du bruge OOP til fremstilling af systemsimuleringssoftware.

Hvad er nogle andre programmeringsparadigmer end OOP’er?

Svar: Programmeringsparadigmer er metoden til at kategorisere programmeringssprog baseret på hvert sprogs egenskaber. Der er to typer programmeringsparadigmer:

  • Imperativt programmeringsparadigme: Det fokuserer på, hvordan man udfører logik og definerer kontrolflowet. Det inkluderer det proceduremæssige programmeringsparadigme, objektorienteret programmering (OOP) og parallel programmering.
  • Deklarativt programmeringsparadigme: Det fokuserer på, hvad der skal udføres i programmet og definerer dets logik, ikke kontrolflowet. Det inkluderer det logiske programmeringsparadigme, det funktionelle programmeringsparadigme og det databaseprogrammeringsparadigme.

Hvad er forskellen mellem OOP og SOP?

Svar: Lad os forstå forskellen mellem OOP og SOP med denne tabel:

  Sådan tager du et iPhone-skærmbillede uden knapper

Objektorienteret programmeringsstruktur Det er en programmeringsmodel baseret på objekter i stedet for procedurer og funktioner. Den giver en logisk struktur til programmet, hvor programmerne er opdelt i funktioner. Følger en bottom-up tilgang Følger en top-down tilgang Giver dataskjul eller indkapslingDen giver ikke dataskjulDen kan løse komplekse problemer.Den kan løse moderate problemer. Lav redundans, da kode kan bruges igenDen understøtter ikke kodegenanvendelighed.Mere fleksibelMindre fleksibelDen primære bekymring er data.Dens primære bekymring er den logiske struktur af et program.

Hvad er hovedtræk ved OOP’er?

Svar: Her er de vigtigste funktioner i OOP’er:

  • Arv
  • Indkapsling
  • Abstraktion
  • Polymorfi
  • Metode tilsidesætter
  • Metode overbelastning
  • Objekter
  • Klasser
  • Konstruktører og destruktorer

Arv, polymorfi og indkapsling er de grundlæggende elementer i OOP, der adskiller disse funktioner fra ikke-OOP-sprog.

Hvad er indkapsling?

Svar: Indkapsling er en metode til at sætte klasse, variabler, metoder og mere i en kapsel, der er påkrævet for at udføre arbejdet og præsentere den samme kapsel for brugeren. Enkelt sagt er alle nødvendige metoder og data sat sammen, og de unødvendige detaljer er skjult for brugerne.

Det kan også defineres på andre måder:

  • Databinding: Indkapsling er en proces med at binde datamedlemmer sammen med metoderne sammen som en klasse eller som en helhed.
  • Dataskjul: Indkapsling er en proces med at skjule unødvendig information, såsom adgangsbegrænsninger til medlemmet af et objekt osv.

Hvad er polymorfi?

Svar: Lad os forstå polymorfi ved at adskille udtrykket i to ord, der danner det:

“Poly” betyder “mange”

“Morph” betyder “former”

Så polymorfi kan beskrives som et objekt, der har forskellige former.

I OOP’er omtales det som den proces, hvorigennem nogle data, objekter, metoder eller koder opfører sig forskelligt under flere sammenhænge eller omstændigheder. Der er to typer polymorfi i OOPs-modellen:

  • Køretidspolymorfi
  • Kompiler tidspolymorfi

Med andre ord er det flere definitioner af en enkelt grænseflade. For eksempel er der en klasse ved navn ‘køretøj’, som består af en metode ‘hastighed’. Det er umuligt at definere hastigheden, da forskellige køretøjer har forskellige hastigheder. Dette kan således defineres i underklasserne af forskellige definitioner for forskellige køretøjer.

Hvad er statisk polymorfisme?

Svar: Statisk polymorfi er også kendt som kompileringstidspolymorfi. Det er den funktion, hvorigennem et objekt kan forbindes med den respektive operator eller funktion baseret på værdierne. Dette kan opnås gennem operatøroverbelastning eller metodeoverbelastning.

Her bruger metoderne et lignende navn, men parameteren for hvert navn varierer. Objektet opfører sig anderledes for en lignende trigger. Således implementeres flere metoder i samme klasse.

Hvad er dynamisk polymorfisme?

Svar: Dynamisk polymorfi er også kendt som runtime polymorfi. Det refererer til typen af ​​polymorfi i OOP’er, hvorigennem den faktiske inkorporering af funktion afgøres under udførelsen eller kørselstiden. Det kan opnås ved metodetilsidesættelse.

For eksempel oprettes to klasser, bike og Yamaha, og klassen Yamaha udvider cykelklassen og tilsidesætter dens run()-metode. Da underklassemetoden tilsidesætter den overordnede klassemetode, aktiveres den ved kørsel.

Hvad er en klasse?

Svar: En klasse kan defineres som den blueprint eller skabelon, der indeholder nogle værdier, kaldet medlemsdata. Det inkluderer også nogle regler, som er kendt som funktioner eller adfærd. Når du opretter et objekt, tager det automatisk de funktioner og data, der er defineret i klassen.

En klasse er dog en blueprint eller skabelon for objekter. Man kan designe så mange objekter som kravet baseret på en klasse. For eksempel oprettes en bils skabelon først. Derefter designes forskellige enheder af biler ud fra bilens skabelon.

  Sådan får du mørk tilstand til alle websteder på Mac

Hvad er et objekt?

Svar: Objektet kan defineres som instansen af ​​en klasse, der indeholder instansen af ​​adfærd og medlemmer defineret i skabelonen. Objektet er den faktiske enhed, som en bruger interagerer med, men klassen er kun en plan for det pågældende objekt.

Objekter har således nogle karakteristika eller adfærd og optager plads – for eksempel en specifik bilmodel.

Hvad er forskellen mellem en klasse og en struktur?

Svar: Lad os forstå dette ved hjælp af en tabel:

Klassestruktur Klasser er af referencetyper.Strukturer er af værdityper.Den er allokeret til heap-hukommelse.Den er allokeret på stakhukommelse.Allokering er billigere i den store referencetypeAllokering er billigere i værditype end en referencetypeDen har ubegrænsede funktioner. har begrænsede funktioner.En klasse bruges i store programmer.En struktur bruges i små programmer.Den indeholder en konstruktør og en destruktor.Den indeholder parameteriseret eller statisk konstruktør. Den bruger et new() nøgleord, hver gang den opretter forekomster. Den kan nemt oprette forekomster med eller uden nogen nøgleord. En klasse kan arve fra en anden klasse. En struktur er ikke tilladt at nedarve. Datamedlemmerne i en klasse kan beskyttes. Datamedlemmerne i en struktur kan ikke beskyttes.Funktionsmedlemmer kan være abstrakte eller virtuelleFunktionsmedlemmer kan ikke være abstrakte eller virtuelleTo forskellige variabler af klassen kan indeholde referencen til et lignende objekt. Hver variabel indeholder sin egen kopi.

Hvad er arv?

Svar: Nedarvning er en af ​​funktionerne i OOP’er, der gør det muligt for en klasse at arve hovedegenskaberne for en anden klasse. For eksempel, hvis ‘køretøj’ er en klasse, er ‘bil’, ‘cykel’ osv. andre klasser, der kan arve nøgleegenskaber fra klassens køretøj’.

Denne funktion hjælper med at slippe af med overflødig kode; dermed reducere størrelsen af ​​koden. Enkelt sagt defineres arv som modtageren af ​​ejendomme fra den overordnede klasse til den underordnede klasse. Her er ‘køretøj’ forældreklassen, og ‘bil’ eller ‘cykel’ er børneklasser fra ovenstående eksempel.

På denne måde kan du genbruge programmeringskoden for en klasse i en anden klasse uden at skrive den samme kode igen eller spilde tid i processen.

Hvad er de forskellige typer af arv?

Svar: Der er forskellige typer af arv brugt i OOPs-modellen, såsom:

  • Enkelt arv: Det definerer som den arv, hvor en enkelt klasse arver fælles funktioner i en enkelt basisklasse.
  • Flere arv: Det kommer ind i billedet, når en enkelt klasse arver mere end én klasse.
  • Multilevel arv: Dette betyder, at en klasse arver fra andre klasser, som er underklasser af en anden klasse.
  • Hierarkisk arv: Det refererer til arven, hvor en klasse har flere underklasser.
  • Hybrid arv: Det er kombinationen af ​​multilevel og multiple arv.

Hvad er begrænsningerne for arv?

Svar: Nogle af begrænsningerne ved arv er som følger:

  • Det øger indsatsen og tiden, der kræves for at udføre programmet. Dette skyldes, at det kræver at hoppe fra en klasse til en anden klasse ofte, hvilket tager tid.
  • Forældreklassen er sammen med børneklassen koblet meget tæt, så fleksibiliteten er mindre.
  • Det kræver omhyggelig inkorporering, ellers ville det føre til utilstrækkelige eller forkerte resultater.
  • En enkelt ændring i programmet kan føre til en ændring i kode i både forældre- og børneklasser.

Hvad er abstraktion?

Svar: Abstraktion er et af elementerne i OOP’er. Abstraktionens nøglerolle er at håndtere kompleksitet. Dette gøres ved at skjule uønskede detaljer for brugerne. Dette giver brugerne mulighed for at implementere kompleks logik oven på abstraktion uden at tænke på den skjulte kompleksitet.

  De bedste måder at sikkerhedskopiere din Mac på

For eksempel, hvis du er en kaffeelsker, skal du vide, hvor meget mælk, kaffebønner og sukkerterninger du vil tilføje for at lave en kop kaffe ved hjælp af en kaffemaskine. Det nytter ikke at tænke på arbejdsprincippet for den maskine. Kaffemaskinen er en skjult kompleksitet, som du ikke behøver at kende til, men processen med at lave en kaffe er en nødvendighed.

Der er to typer abstraktion:

  • Dataabstraktion
  • Procesabstraktion

Hvad er en konstruktør?

Svar: En konstruktør er en speciel metode i klassen eller strukturen, hvis navn ligner klassens navn. Det tjener det påkrævede formål at initialisere objekter. Det hjælper også med at instansiere medlemsdata samt metoder til at tildele objekter til klassen.

Når du opretter en konstruktør, er et par ting nødvendige at huske på:

  • Den hedder det samme som klassens navn.
  • Det kan ikke være abstrakt, endeligt eller statisk.
  • Den har ikke nogen returtypevariabel.

Hvad er de forskellige typer konstruktører i C++?

Svar: Der er hovedsageligt tre typer konstruktører i C++:

  • Standardkonstruktør: En konstruktør uden parametre eller argumenter i definitionen. Denne type konstruktør bruges til at initialisere datamedlemmerne eller variablerne med reelle værdier.
  • Parameteriseret konstruktør: Den indeholder argumenter eller parametre i erklæringen og definitionen. Mere end én parameter kan passere gennem den parametriserede konstruktør. Det bruges til overbelastning for at kende forskellene i flere konstruktører.
  • Kopikonstruktør: Det er en medlemsfunktion, der bruger et andet objekt af en lignende klasse til at initialisere et objekt. Desuden hjælper det med at kopiere data fra et enkelt objekt til et andet.

Hvad er en Destructor?

Svar: En destructor er en metode, der kaldes automatisk, mens man ødelægger et objekt. Den implementerer visse handlinger:

  • Gendan heap plads, der er tildelt før under initialiseringen af ​​objektet
  • Lukning af databaseforbindelser og filer
  • Frigivelse af netværksressourcer og ressourcelåse
  • Udførelse af diverse husholdningsopgaver

Med andre ord ødelægger en destruktor de objekter, der er initialiseret af konstruktøren. Det er en speciel medlemsfunktion med samme navn som klassenavnet, men efter et (~) symbol. En destructor kan blive overbelastet, da det er en envejsfunktion.

Hvad er Garbage Collection (GC)?

Svar: Garbage Collection (GC) er et hukommelsesgendannelseselement indbygget i programmeringssprog, såsom Java og C#. Et GC-aktiveret programmeringssprog indeholder mindst én skraldeopsamler, der automatisk frigør hukommelsesplads, som ikke længere er påkrævet i et program.

Skraldeindsamling bekræfter, at programmet stadig er inden for sin hukommelseskvote. Det forhindrer udviklere i manuelt at administrere programmets hukommelse, hvilket minimerer hukommelsesrelaterede fejl.

Hvad er undtagelseshåndtering?

Svar: Undtagelseshåndtering er en metode til at reagere på uventede hændelser, mens et computerprogram kører. Programmører skal “håndtere” uønskede hændelser (undtagelser) for at forhindre et system eller program i at gå ned. Uden denne metode kan undtagelser forstyrre den almindelige drift af et program og resultere i ineffektivitet eller risici.

Hvad er en try/catch-blok?

Svar: Try or catch er de nøgleord, der repræsenterer undtagelseshåndteringer på grund af kodnings- eller datafejl under afviklingen af ​​et program.

  • En prøveblok er kodeblokken, hvor der forekommer undtagelser
  • En catch-blok håndterer og fanger forsøger med blokundtagelser

Try and catch-sætningerne bruges ofte i forskellige programmeringssprog, inklusive C++. C#, Java, SQL og JavaScript. Hver try-sætning matcher med en catch-sætning for at håndtere udførelsen. Her er et par flere ting, du skal huske i forsøg på at fange udtalelser:

  • En prøveblok efterfølges af catch-blokken.
  • En try-blok efterfølges af mindst én catch-blok.
  • En try-blok efterfølges af en anden try-blok og yderligere efterfulgt af catch-blokken.

Konklusion

OOP er et vigtigt koncept for programmører at kende. At lære det grundigt vil også hjælpe dig med at programmere godt på sprog, der bruger OOP-koncepterne.

Hvis du forbereder dig til et interview eller en test, vil ovenstående interviewspørgsmål og svar hjælpe dig med at genopfriske din forståelse af OOP-koncepter som klasser, objekter, indkapsling, polymorfi, arv, abstraktion og mere. På denne måde kan du trygt møde interviewene og komme igennem dem med succes for at opbygge din karriere.

Du kan også se på nogle af disse SQL-interviewspørgsmål.