21 Ofte stilte OOP-intervjuspørsmål og svar å vite i dag

Objektorientert programmeringsintervjuspørsmål kan hjelpe programmerere og utviklere med å øke kunnskapen om nøkkelbegreper i programmeringsverdenen.

OOP er et av de mest nødvendige og mest nødvendige programmeringsparadigmene, med fokus på objekter og klasser i stedet for prosedyrer og funksjoner.

Noen OOP-baserte programmeringsspråk er Objective-C, Java, Ada, Perl, Python, C++ og mer.

Store selskaper søker utviklere som er dyktige i objektorienterte tilnærminger så vel som mønstre.

Så hvis du planlegger å møte til en slik intervjuprosess, må du ha en grundig forståelse av OOP-konseptene.

La oss se på noen av de ofte stilte OOP-intervjuspørsmålene og -svarene for å hjelpe deg med å forberede deg til intervjuer og tester.

Objektorientert programmering (OOP): En oversikt

OOP er et programmeringsparadigme som dreier seg om objekter. Her betraktes objektene som instanser i den virkelige verden, som en klasse som inkluderer noen atferd og egenskaper spesifisert i klassemalen.

La oss for eksempel vurdere en bil. I henhold til OOPs-modellen:

  • Objekt: En bil. Det kan være av hvilken som helst type eller modell, for eksempel bilen du eier.
  • Klasse: Bilens modell eller type, som BMW, Chevrolet, Kia, Audi, med flere.
  • Egenskaper: Farge på bilen, chassisnummer på bilen, motortype, girtype, med mer.
  • Atferd: Hvordan skifte gir, hvordan starte bilen og mer.

Her er egenskaper også kjent som egenskaper, attributter eller data, mens atferd er kjent som prosedyrer, metoder eller funksjoner i programmeringsspråk.

Så la oss starte med noen ofte stilte OOP-intervjuspørsmål.

Hva menes med begrepet OOPs?

Svar: Objektorientert programmering (OOP) er en programmeringsmodell basert på objekter og klasser i stedet for prosedyrer og funksjoner. Individuelle objekter er ordnet i klasser. OOPs beskriver virkelige enheter med konsepter som polymorfisme, skjul, arv, etc., og programmeringsparadigmer.

OOPs binder kode og data sammen. Objekter er virkelige enheter definert via klasser med spesifikke egenskaper og atferd, mens en klasse er definert som mønsteret for et spesifikt objekt. Det er også kjent som en brukerdefinert datatype.

Dette inkluderer programmer for design og produksjon sammen med mobilapplikasjonen. Du kan for eksempel bruke OOP for å produsere systemsimuleringsprogramvare.

Hva er noen andre programmeringsparadigmer enn OOP-er?

Svar: Programmeringsparadigmer er metoden for å kategorisere programmeringsspråk basert på hvert språks funksjon. Det er to typer programmeringsparadigmer:

  • Imperativt programmeringsparadigme: Det fokuserer på hvordan man utfører logikk og definerer kontrollflyten. Det inkluderer det prosedyremessige programmeringsparadigmet, objektorientert programmering (OOP) og parallell programmering.
  • Deklarativt programmeringsparadigme: Det fokuserer på hva som skal utføres i programmet og definerer dets logikk, ikke kontrollflyten. Det inkluderer det logiske programmeringsparadigmet, funksjonelt programmeringsparadigmet og databaseprogrammeringsparadigmet.

Hva er forskjellen mellom OOP og SOP?

Svar: La oss forstå forskjellen mellom OOP og SOP med denne tabellen:

  Hvordan slå sammen Excel-filer

Objektorientert programmeringsstruktur Det er en programmeringsmodell basert på objekter i stedet for prosedyrer og funksjoner. Den gir en logisk struktur til programmet, der programmene er delt inn i funksjoner. Følger en nedenfra og opp-tilnærming Følger en ovenfra-ned-tilnærming Gir dataskjul eller innkapslingDen gir ikke dataskjulingDen kan løse komplekse problemer.Den kan løse moderate problemer. Lav redundans ettersom kode kan brukes igjenDen støtter ikke gjenbruk av kode.Mer fleksibelMindre fleksibelDen primære bekymringen er data.Dens primære bekymring er den logiske strukturen til et program.

Hva er hovedtrekkene til OOPs?

Svar: Her er hovedtrekkene til OOPs:

  • Arv
  • Innkapsling
  • Abstraksjon
  • Polymorfisme
  • Metode overstyrer
  • Metode overbelastning
  • Objekter
  • Klasser
  • Konstruktører og destruktorer

Arv, polymorfisme og innkapsling er de grunnleggende elementene i OOP som skiller disse funksjonene fra ikke-OOP-språk.

Hva er innkapsling?

Svar: Innkapsling er en metode for å sette klasse, variabler, metoder og mer i en kapsel som kreves for å utføre arbeidet og presentere den samme kapselen for brukeren. Enkelt sagt er alle nødvendige metoder og data satt sammen, og de unødvendige detaljene er skjult for brukerne.

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

  • Databinding: Innkapsling er en prosess for å binde datamedlemmer sammen med metodene sammen som en klasse eller som en helhet.
  • Skjul data: Innkapsling er en prosess for å skjule unødvendig informasjon, for eksempel tilgangsbegrensninger til medlemmet av et objekt, etc.

Hva er polymorfisme?

Svar: La oss forstå polymorfisme ved å dele begrepet i to ord som danner det:

«Poly» betyr «mange»

«Morph» betyr «former»

Så polymorfisme kan beskrives som et objekt som har forskjellige former.

I OOPs blir det referert til som prosessen der noen data, objekter, metoder eller koder oppfører seg annerledes under flere sammenhenger eller omstendigheter. Det er to typer polymorfisme i OOPs-modellen:

  • Kjøretidspolymorfisme
  • Kompiler tidspolymorfisme

Med andre ord er det flere definisjoner av et enkelt grensesnitt. For eksempel er det en klasse som heter «kjøretøy», som består av en metodes hastighet. Det er umulig å definere hastigheten da forskjellige kjøretøy har forskjellige hastigheter. Dermed kan dette defineres i underklassene til ulike definisjoner for ulike kjøretøy.

Hva er statisk polymorfisme?

Svar: Statisk polymorfisme er også kjent som kompileringstidspolymorfisme. Det er funksjonen som et objekt kan kobles til den respektive operatøren eller funksjonen basert på verdiene. Dette kan oppnås gjennom operatøroverbelastning eller metodeoverbelastning.

Her bruker metodene et lignende navn, men parameteren til hvert navn varierer. Objektet oppfører seg annerledes for en lignende trigger. Dermed er flere metoder implementert i samme klasse.

Hva er dynamisk polymorfisme?

Svar: Dynamisk polymorfisme er også kjent som runtime polymorfisme. Det refererer til typen polymorfisme i OOP-er som den faktiske inkorporeringen av funksjon avgjøres gjennom under utførelsen eller kjøretiden. Det kan oppnås ved metodeoverstyring.

For eksempel opprettes to klasser, sykkel og Yamaha, og klassen Yamaha utvider sykkelklassen og overstyrer dens run()-metode. Siden underklassemetoden overstyrer den overordnede klassemetoden, blir den påkalt under kjøring.

Hva er en klasse?

Svar: En klasse kan defineres som en blåkopi eller mal som inneholder noen verdier, kalt medlemsdata. Det inkluderer også noen regler, som er kjent som funksjoner eller atferd. Når du oppretter et objekt, tar det automatisk funksjonene og dataene som er definert i klassen.

En klasse er imidlertid en blåkopi eller mal for objekter. Man kan designe så mange objekter som per kravet basert på en klasse. For eksempel lages en bils mal først. Etter det designes ulike enheter av biler basert på bilens mal.

  La disse 9 Marketing Automation-programvarene hjelpe bedriften din

Hva er et objekt?

Svar: Objektet kan defineres som forekomsten av en klasse som inneholder forekomsten av atferd og medlemmer definert i malen. Objektet er den faktiske enheten en bruker samhandler med, men klassen er bare en blåkopi for det objektet.

Dermed har objekter noen egenskaper eller atferd og bruker plass – for eksempel en spesifikk bilmodell.

Hva er forskjellen mellom en klasse og en struktur?

Svar: La oss forstå dette ved hjelp av en tabell:

Klassestruktur Klasser er av referansetyper.Strukturer er av verdityper.Den er allokert til haugminne.Den er allokert på stabelminne.Allokering er billigere i den store referansetypenTildeling er billigere i verditype enn en referansetypeDen har ubegrensede funksjoner. har begrensede funksjoner.En klasse brukes i store programmer.En struktur brukes i små programmer.Den inneholder en konstruktør og en destruktor.Den inneholder parameterisert eller statisk konstruktør. Den bruker et new() nøkkelord hver gang den oppretter forekomster. Den kan enkelt lage forekomster med eller uten noen nøkkelord.En klasse kan arve fra en annen klasse.En struktur er ikke tillatt å arve.Datamedlemmene i en klasse kan beskyttes. Datamedlemmene i en struktur kan ikke beskyttes.Funksjonsmedlemmer kan være abstrakte eller virtuelle funksjonsmedlemmer kan ikke være abstrakte eller virtuelle To forskjellige variabler i klassen kan inkludere referansen til et lignende objekt. Hver variabel inneholder sin egen kopi.

Hva er arv?

Svar: Arv er en av funksjonene til OOP-er som gjør at en klasse kan arve hovedegenskapene til en annen klasse. For eksempel, hvis «kjøretøy» er en klasse, er «bil», «sykkel» osv. andre klasser som kan arve nøkkelegenskaper fra klassens kjøretøy.

Denne funksjonen hjelper med å bli kvitt overflødig kode; dermed redusere størrelsen på koden. Enkelt sagt er arv definert som mottaker av eiendommer fra overordnet klasse til barneklassen. Her er «kjøretøy» foreldreklassen, og «bil» eller «sykkel» er barneklasser fra eksemplet ovenfor.

På denne måten kan du gjenbruke programmeringskoden til en klasse i en annen klasse uten å skrive den samme koden igjen eller kaste bort tid i prosessen.

Hva er de ulike typer arv?

Svar: Det er ulike typer arv som brukes i OOPs-modellen, for eksempel:

  • Enkeltarv: Den definerer som arven der en enkelt klasse arver vanlige funksjoner til en enkelt basisklasse.
  • Flere arv: Det kommer inn i bildet når en enkelt klasse arver mer enn én klasse.
  • Flernivåarv: Dette betyr at en klasse arver fra andre klasser, som er underklasser til en annen klasse.
  • Hierarkisk arv: Det refererer til arven der en klasse har flere underklasser.
  • Hybrid arv: Det er kombinasjonen av multilevel og multiple arv.

Hva er begrensningene for arv?

Svar: Noen av begrensningene for arv er som følger:

  • Det øker innsatsen og tiden som kreves for å utføre programmet. Dette er fordi det krever å hoppe fra en klasse til en annen klasse ofte, noe som tar tid.
  • Foreldreklassen, sammen med barneklassen, er veldig tett sammen, så fleksibiliteten er mindre.
  • Den trenger nøye inkorporering, ellers vil den føre til utilstrekkelige eller feilaktige resultater.
  • En enkelt endring i programmet kan føre til en endring i kode i både foreldre- og barneklasser.

Hva er abstraksjon?

Svar: Abstraksjon er et av elementene i OOPs. Abstraksjonens nøkkelrolle er å håndtere kompleksitet. Dette gjøres ved å skjule uønskede detaljer for brukerne. Dette lar brukere implementere kompleks logikk på toppen av abstraksjon uten å tenke på den skjulte kompleksiteten.

  Hvordan lage din første NFT (og legge den ut for salg!)

For eksempel, hvis du er en kaffeelsker, må du vite hvor mye melk, kaffebønner og sukkerbiter du vil tilsette for å lage en kopp kaffe med en kaffemaskin. Det er ingen vits i å tenke på arbeidsprinsippet til den maskinen. Kaffemaskinen er en skjult kompleksitet som du ikke trenger å vite, men prosessen med å lage en kaffe er en nødvendighet.

Det er to typer abstraksjon:

  • Dataabstraksjon
  • Prosessabstraksjon

Hva er en konstruktør?

Svar: En konstruktør er en spesiell metode i klassen eller strukturen hvis navn ligner på klassenavnet. Det tjener det nødvendige formålet med å initialisere objekter. Det hjelper også med å instansiere medlemsdata så vel som metoder for å tilordne objekter til klassen.

Når du oppretter en konstruktør, må du huske på noen få ting:

  • Den heter det samme som klassenavnet.
  • Det kan ikke være abstrakt, endelig eller statisk.
  • Den har ingen returtypevariabel.

Hva er de forskjellige typene konstruktører i C++?

Svar: Det er hovedsakelig tre typer konstruktører i C++:

  • Standardkonstruktør: En konstruktør uten parametere eller argumenter i definisjonen. Denne typen konstruktør brukes til å initialisere datamedlemmene eller variablene med reelle verdier.
  • Parameterisert konstruktør: Den inneholder argumenter eller parametere i erklæringen og definisjonen. Mer enn én parameter kan passere gjennom den parameteriserte konstruktøren. Den brukes til overbelastning for å kjenne forskjellene i flere konstruktører.
  • Kopikonstruktør: Det er en medlemsfunksjon som bruker et annet objekt av en lignende klasse for å initialisere et objekt. Dessuten hjelper det med å kopiere data fra et enkelt objekt til et annet.

Hva er en destruktor?

Svar: En destruktor er en metode som kalles automatisk mens du ødelegger et objekt. Den implementerer visse handlinger:

  • Gjenoppretting av haugplass som er tildelt før under initialiseringen av objektet
  • Lukke databaseforbindelser og filer
  • Frigjør nettverksressurser og ressurslåser
  • Utfører ulike husarbeidsoppgaver

Med andre ord, en destruktor ødelegger objektene initialisert av konstruktøren. Det er en spesiell medlemsfunksjon med samme navn som klassenavnet, men innledes med et (~)-symbol. En destruktor kan bli overbelastet da det er en enveisfunksjon.

Hva er Garbage Collection (GC)?

Svar: Garbage Collection (GC) er et minnegjenopprettingselement innebygd i programmeringsspråk, som Java og C#. Et GC-aktivert programmeringsspråk inneholder minst én søppeloppsamler som frigjør minneplass automatisk som ikke lenger er nødvendig i et program.

Søppelhenting bekrefter at programmet fortsatt er innenfor minnekvoten. Det forhindrer utviklere i å manuelt administrere programmets minne, noe som minimerer minnerelaterte feil.

Hva er unntakshåndtering?

Svar: Unntakshåndtering er en metode for å reagere på uventede hendelser mens et dataprogram kjører. Programmerere må «håndtere» uønskede hendelser (unntak) for å forhindre at et system eller program krasjer. Uten denne metoden kan unntak forstyrre den vanlige driften av et program og resultere i ineffektivitet eller risiko.

Hva er en try/catch-blokk?

Svar: Try or catch er nøkkelordene som representerer unntakshåndtering på grunn av koding eller datafeil under kjøringen av et program.

  • En prøveblokk er kodeblokken der unntak forekommer
  • En catch-blokk håndterer og fanger prøver blokkunntak

Try and catch-setningene brukes ofte i forskjellige programmeringsspråk, inkludert C++. C#, Java, SQL og JavaScript. Hver try-setning samsvarer med en catch-setning for å håndtere utførelsen. Her er noen flere ting å huske på i try and catch-utsagn:

  • En prøveblokk etterfølges av fangstblokken.
  • En prøveblokk etterfølges av minst én fangstblokk.
  • En prøveblokk blir fulgt av en annen prøveblokk og videre etterfulgt av fangstblokken.

Konklusjon

OOP er et viktig konsept for programmerere å kjenne til. Å lære det grundig vil også hjelpe deg med å programmere godt på språk som bruker OOP-konseptene.

Hvis du forbereder deg til et intervju eller en test, vil intervjuspørsmålene og svarene ovenfor hjelpe deg med å oppdatere forståelsen av OOP-konsepter som klasser, objekter, innkapsling, polymorfisme, arv, abstraksjon og mer. På denne måten kan du trygt møte intervjuene og komme deg gjennom dem med suksess for å bygge din karriere.

Du kan også se på noen av disse SQL-intervjuspørsmålene.