Indholdsfortegnelse[Skjule][At vise]
- 1. Hvad er objektorienteret programmering helt præcist?
- 2. Hvorfor er OOP'er nødvendige?
- 3. Hvilke fordele giver OOPS principper?
- 4. Hvad er grundpillerne i OOPs-konceptet?
- 5. Hvad er en klasse egentlig?
- 6. Hvad er en genstand egentlig?
- 7. Hvad er OOP'ers begrænsninger?
- 8. Hvad er arv?
- 9. Hvad er indkapsling helt præcist?
- 10. Hvad er polymorfi?
- 11. Hvad er abstraktion helt præcist?
- 12. Hvad er metodeoverbelastning egentlig?
- 13. Hvad er metoden egentlig tilsidesættende?
- 14. Hvad er en superklasse helt præcist?
- 15. Hvad er en underklasse helt præcist?
- 16. Hvad er statisk polymorfi helt præcist?
- 17. Hvad er dynamisk polymorfi egentlig?
- 18. Beskriv begrebet en konstruktør.
- 19. Hvad er adgangsmodifikatorerne præcist?
- 20. Hvad er egentlig en destruktor?
- 21. Hvad er hybridarv egentlig?
- 22. Hvad er hierarkisk arv præcist?
- 23. Hvad er ulemperne ved arv?
- 24. Hvad er egentlig en undtagelse?
- 25. Hvad er undtagelseshåndtering helt præcist, og hvad er dens fordele?
- 26. Hvad er virtuelle funktioner helt præcist?
- 27. Hvad er vennefunktionen helt præcist?
- 28. Hvad er Garbage Collection helt præcist?
- 29. Hvad er kobling præcist?
- 30. Hvad er sammenhæng helt præcist?
- 31. Beskriv en try/catch-blok.
- 32. Beskriv en sidste blok.
- 33. Hvad er egentlig en grænseflade?
- 34. Hvad er komposition egentlig?
- 35. Hvad er constructor chaining?
- Konklusion
Et af de mest indflydelsesrige programmeringsparadigmer kaldes OOP'er eller objektorienteret programmering. I stedet for funktioner og processer lægger den vægt på klasser og objekter.
Dens hovedformål er at forbinde data og ting, så det er lettere at arbejde med dem. Hvert objekt i OOPs er opbygget af kode i form af procedurer eller metoder og data i form af felter.
Sprog som C++, Objective C, Python, Perl og Java er nogle af de mest populære objektorienterede programmeringssprog.
Det er vigtigt at forstå mere om dette, da ups interviewspørgsmål er ekstremt typiske. De fleste virksomheder leder efter ingeniører, der er fortrolige med objektorienterede metoder og mønstre. Så hvis du har tænkt dig at deltage i et interview, skal du være velbevandret i OOP-ideer.
Forskellige objektorienterede programmeringsinterviewspørgsmål fra begynder- til ekspertniveauer vil blive vist i dette indlæg. Du kan derfor bestå et hvilket som helst niveau af samtale og sikre dig din drømmestilling.
1. Hvad er objektorienteret programmering helt præcist?
Programmering, der er objektorienteret (OOP'er) er baseret på faktiske objekter snarere end blot funktioner og processer. Klasser oprettes for individuelle produkter.
Arv, polymorfi og skjule er eksempler på virkelige koncepter, som OOP'er inkorporerer i programmering. Det gør det også muligt at forbinde data og kode.
2. Hvorfor er OOP'er nødvendige?
Der er flere grunde til, at OOP'er er at foretrække, men følgende er de vigtigste:
- OOPs, giver folk mulighed for let at forstå software, selvom de ikke er bekendt med implementeringen.
- Ups, forbedre kodelæsbarhed, forståelighed og vedligeholdelsesevne med en faktor ti.
- Ved at bruge OOP'er kan selv ekstremt store applikationer nemt bygges og styres.
3. Hvilke fordele giver OOPS principper?
- OOPS, programmeringsobjekter simulerer faktiske objekter, hvilket reducerer kompleksiteten og forbedrer programmets klarhed.
- Objekter kan bruges gentagne gange i mange programmer.
- Hvert objekt opretter en særskilt enhed, hvis interne operationer er uafhængige af andre systemkomponenter.
- Ved at introducere nogle få nye objekter og opdatere nogle få allerede eksisterende, er det muligt at tilføje ny funktionalitet eller tilpasse sig skiftende driftsforhold.
- Et OOPs-programs processer eller datarepræsentation kan nemt undergå små justeringer.
4. Hvad er grundpillerne i OOPs-konceptet?
Følgende er de vigtigste søjler i OOP:
Arv: Det gør det muligt for klasser at arve en anden klasses attributter.
Indkapsling: Dette er defineret som en objektegenskab, der skjuler kritisk information. Dette holder data skjult for klassemedlemmer. Specifikatorerne beskriver, hvordan objektets attribut tilgås i kode.
polymorfi: Dette giver dig mulighed for at udføre en enkelt aktivitet på flere måder. Det opnås gennem grænseflader, hvor vi erklærer én grænseflade, der efterfølgende implementeres flere gange.
abstraktion: Du kan bruge denne funktion til at skjule kritisk information fra omverdenen og kun præsentere de væsentlige fakta.
5. Hvad er en klasse egentlig?
En klasse er en prototype, der består af objekter i forskellige tilstande og med varierende adfærd. Den har en række metoder, der deles af objekterne i den pågældende klasse.
6. Hvad er en genstand egentlig?
Et objekt er en entitet i den virkelige verden, der fungerer som den grundlæggende enhed i OOP'er, såsom en stol, kat eller hund. Forskellige objekter har forskellige tilstande, egenskaber og handlinger.
7. Hvad er OOP'ers begrænsninger?
- Størrelsen er større end andre applikationer.
- Det kræver lidt tilvænning.
- Visse former for problemer kræver det ikke.
- Det var arbejdskrævende at skabe, og sammenlignet med andre applikationer fungerer det langsommere.
8. Hvad er arv?
Et begreb kaldet arv refererer til deling af en klasses etablerede struktur og adfærd med en anden klasse. Når arv anvendes på en enkelt klasse, omtales det som enkeltarv; når det afhænger af mange klasser, omtales det som multiple arv.
9. Hvad er indkapsling helt præcist?
Ideen med OOP'er inkluderer også indkapsling. Den beskriver blandingen af data og datamanipulationsteknikker. Derudover hjælper det med at forhindre direkte adgang til nogle dele af et objekt.
10. Hvad er polymorfi?
I OOP-sprog er polymorfi et grundlæggende begreb. Det viser, hvordan forskellige klasser kan dele en grænseflade. Disse klasser er alle i stand til at have unikke grænsefladeimplementeringer.
11. Hvad er abstraktion helt præcist?
Abstraktion er objektorienteret programmering (OOPs) koncept, der bruges til at skabe strukturen af objekter i den virkelige verden. Det "viser" blot de vigtigste kvaliteter og "skjuler" fremmed information fra den ydre verden. Det grundlæggende mål med abstraktion er at beskytte folk mod unødvendig information.
12. Hvad er metodeoverbelastning egentlig?
Det er muligt for to eller flere procedurer at have samme navn. De bør dog have forskellige parametre, forskellige antal parametre, forskellige typer eller begge dele. Disse er kendt som overbelastede metoder, og funktionen er kendt som metodeoverbelastning.
13. Hvad er metoden egentlig tilsidesættende?
Objektorienteret programmering inkluderer ideen om metodetilsidesættelse. Det er en sprogfunktion, der lader en underklasse eller underklasse tilbyde en tilpasset implementering af en metode, som en af dens superklasser eller overordnede klasser allerede tilbyder.
14. Hvad er en superklasse helt præcist?
En superklasse, ofte kendt som en basisklasse, er en type klasse, der fungerer som forælder til en anden klasse eller klasser. Bilklassen har for eksempel en underklasse kaldet Vehicle.
15. Hvad er en underklasse helt præcist?
En underklasse er en underklasse af en anden klasse. En varevogn er for eksempel en underklasse for køretøjer eller afledt klasse.
16. Hvad er statisk polymorfi helt præcist?
På kompileringstidspunktet finder en type polymorfi kendt som statisk polymorfi (statisk binding) sted. Metodeoverbelastning er en form for kompileringstidspolymorfi.
17. Hvad er dynamisk polymorfi egentlig?
En slags polymorfi, der løses i runtime, kaldes runtime polymorfisme, også kendt som dynamisk polymorfi (dynamisk binding). Tilsidesættelsen af metoder er en illustration af runtime polymorfi.
18. Beskriv begrebet en konstruktør.
En konstruktør er en specifik metode for en klasse, der automatisk kaldes, når en klasseinstans oprettes. Når du får adgang til klassen, er den konstrueret med samme navn som klassen og initialiserer alle dens medlemmer. En konstruktørs primære egenskaber er som følger:
Der er ingen returtype for konstruktører.
Overbelastning af konstruktører er muligt.
Det er ikke nødvendigt at angive en konstruktør; the.NET Framework vil gøre det automatisk.
19. Hvad er adgangsmodifikatorerne præcist?
I objektorienterede sprog er nøgleord adgangsmodifikatorer eller adgangsspecifikationer. Det hjælper med konfigurationen af klasser, metoder og andre medlemmers tilgængelighed.
20. Hvad er egentlig en destruktor?
En destructor er en metode til at frigive de ressourcer, der er tildelt et objekt. Når et objekt ødelægges, kaldes denne metode automatisk.
21. Hvad er hybridarv egentlig?
Hybrid arv er en slags arv genereret ved blanding af flere former for arv, såsom enkelt, multiple, og så videre.
22. Hvad er hierarkisk arv præcist?
Flere underklasser arver fra en overordnet klasse i situationen med hierarkisk nedarvning. En slags arv, hvor adskillige klasser stammer fra en enkelt forælder eller basisklasse, er kendt som hierarkisk arv. For eksempel kan frugtklassen indeholde underklasser såsom 'æble, 'mango', 'banan', 'kirsebær' og så videre.
23. Hvad er ulemperne ved arv?
Det forlænger og komplicerer udførelsesprocessen. Det kræver også skift mellem forskellige klasser. Forældre- og børneklasserne er altid uløseligt forbundet.
Ændringer af læseplanen ville nødvendiggøre revisioner for både forælderen og barnets klasse. Arv skal implementeres omhyggeligt, ellers bliver resultaterne forkerte.
24. Hvad er egentlig en undtagelse?
En undtagelse er en hændelse, der forstyrrer den sædvanlige drift af koden. For at fortsætte eksekveringen kan du håndtere disse undtagelser i Java. I Java er der mange slags foruddefinerede undtagelser, og undtagelseshåndtering er tilvejebragt for at kontrollere de rejste undtagelser ved hjælp af try-catch-blokke.
25. Hvad er undtagelseshåndtering helt præcist, og hvad er dens fordele?
Den vigtigste metode i Java til at håndtere uventede runtime-fejl er undtagelseshåndtering. Det giver dig mulighed for at kontrollere runtime-fejl, der opstår under programafvikling.
Fordelene ved undtagelseshåndtering omfatter muligheden for at bevare et regelmæssigt programflow, mens undtagelser håndteres. For eksempel, hvis der sker en fejl i en sektion af programmet, vil det ikke have nogen effekt på resten af programmet, hvis vi håndterer undtagelsen med try-catch blokke.
26. Hvad er virtuelle funktioner helt præcist?
Virtuelle funktioner er også inkluderet i den overordnede klasses funktioner og tilsidesættes af underklassen. Disse rutiner hjælper med at opnå runtime polymorfi.
27. Hvad er vennefunktionen helt præcist?
En vennefunktion er en funktion, der tilhører en klasse og har adgang til dens offentlige, private eller beskyttede data. Hvis funktionen er defineret uden for klassen, er det ikke muligt at hente disse data. Adgangskontrolnøgleordene privat, offentlig og beskyttet har ingen betydning for en venneerklæring, som kan afgives hvor som helst i klasseerklæringen.
28. Hvad er Garbage Collection helt præcist?
Garbage Collection (GC) er et element i programmeringssprog som C# og Java, der fungerer som et hukommelsesgendannelsessystem. En garbage collection (GC)-motor er en komponent i et programmeringssprog, der giver mulighed for automatisk frigivelse af hukommelsesplads for objekter, som applikationen ikke længere bruger.
29. Hvad er kobling præcist?
Det refererer til situationer, hvor forskellige klasser stoler på hinanden og deler viden. En stærk forbindelse opstår, når en klasse har detaljeret viden om en anden klasse. Du kan angive synligheden af klasser, metoder eller variabler ved hjælp af adgangsmodifikatorer. Grænseflader bruges til at give svagere kobling.
30. Hvad er sammenhæng helt præcist?
Den måde, hvorpå en komponent udfører en bestemt aktivitet, omtales som dens sammenhæng. En stærk, sammenhængende tilgang vil ganske enkelt løse den definerede opgave, hvorimod en svag, sammenhængende metode ville opdele den enkelte opgave i flere mindre opgaver og derefter fuldføre dem.
Java.io-pakken er ret sammenhængende, men java.util-pakken er det ikke.
31. Beskriv en try/catch-blok.
Når et program støder på en fejl på grund af forkert kode eller data, angiver "try" og "catch", hvordan det skal håndteres. En prøveblok er navnet på den del af koden, hvor der forekommer undtagelser. En catch-blok bruges til at fange og håndtere undtagelser fra try-blokke.
32. Beskriv en sidste blok.
Prøv nøgleordets arbejdsdel af koden er angivet sidst. Det angiver den kode, der altid køres umiddelbart efter forsøget og eventuelle catch-blokke, før metoden er fuldført. Den sidste blok køres altid, uanset om en undtagelse kastes eller fanges.
33. Hvad er egentlig en grænseflade?
En grænseflade er en kombination af abstrakte metoder og en brugerdefineret datatype. En klasse implementerer en grænseflade, som arver grænsefladens abstrakte funktioner.
En klasse repræsenterer et objekts egenskaber og adfærd, hvorimod en grænseflade inkluderer den adfærd, som en klasse implementerer. Grænsefladen repræsenterer "hvad", mens klassen formidler "hvordan".
34. Hvad er komposition egentlig?
Sammensætningen kan bruges til at opnå en forbindelse. Det viser en stærk objektforbindelse mellem de afhængige og uafhængige objekter, i modsætning til aggregering. Det afhængige objekt eksisterer ikke i denne omstændighed og vil blive fjernet, hvis det overordnede objekt slettes.
35. Hvad er constructor chaining?
Konstruktørkæde er en teknik til at kalde en konstruktør fra en anden i forhold til den aktuelle objektreference. Der er to muligheder:
- Konstruktøren i den aktuelle klasse kan refereres ved hjælp af nøgleordet "dette".
- Nøgleordet "super" vil blive brugt til at kalde konstruktøren fra basisklassen.
Konklusion
Objektorienteret programmering kræver at man tænker over programmets struktur og forbereder sig på forhånd. Undersøgelse af, hvordan man opdeler kravene i grundlæggende, genbrugelige klasser, der kan bruges til at skabe forekomster af ting.
Samlet set giver det forbedrede at omfavne OOP datastrukturer og genanvendelighed, hvilket sparer tid i det lange løb. Se Hashdorks interviewserie for hjælp til samtaleforberedelse.
Giv en kommentar