Inhoudsopgave[Zich verstoppen][Laten zien]
- 1. Wat is objectgeoriënteerd programmeren precies?
- 2. Waarom zijn OOP's nodig?
- 3. Welke voordelen bieden de OOPS-principes?
- 4. Wat zijn de pijlers van het OOPs-concept?
- 5. Wat is precies een les?
- 6. Wat is een object precies?
- 7. Wat zijn de beperkingen van OOP's?
- 8. Wat is erfenis?
- 9. Wat is inkapseling precies?
- 10. Wat is polymorfisme?
- 11. Wat is abstractie precies?
- 12. Wat is methode-overbelasting precies?
- 13. Wat is methode-overriding precies?
- 14. Wat is precies een superklasse?
- 15. Wat is precies een subklasse?
- 16. Wat is statisch polymorfisme precies?
- 17. Wat is dynamisch polymorfisme precies?
- 18. Beschrijf het begrip Constructor.
- 19. Wat zijn precies de toegangsmodifiers?
- 20. Wat is een destructor precies?
- 21. Wat is hybride overerving precies?
- 22. Wat is precies hiërarchische overerving?
- 23. Wat zijn de nadelen van overerving?
- 24. Wat is precies een uitzondering?
- 25. Wat is exception handling precies en wat zijn de voordelen ervan?
- 26. Wat zijn virtuele functies precies?
- 27. Wat is precies de vriendenfunctie?
- 28. Wat is vuilnisophaling precies?
- 29. Wat is koppelen precies?
- 30. Wat is cohesie precies?
- 31. Beschrijf een try/catch-blok.
- 32. Beschrijf een laatste blok.
- 33. Wat is precies een interface?
- 34. Wat is compositie precies?
- 35. Wat is constructor chaining precies?
- Conclusie
Een van de meest invloedrijke programmeerparadigma's wordt OOP's of objectgeoriënteerd programmeren genoemd. In plaats van functies en processen legt het de nadruk op klassen en objecten.
Het belangrijkste doel is om gegevens en dingen met elkaar te verbinden, zodat het eenvoudiger is om ermee te werken. Elk object in OOP's bestaat uit code in de vorm van procedures of methoden en gegevens in de vorm van velden.
Talen zoals C++, Objective C, Python, Perl en Java behoren tot de meest populaire objectgeoriënteerde talen programmeertalen.
Het is van cruciaal belang om hier meer over te begrijpen, aangezien oeps-interviewvragen extreem typisch zijn. De meeste bedrijven zijn op zoek naar ingenieurs die bekend zijn met objectgeoriënteerde methoden en patronen. Dus als u van plan bent een interview bij te wonen, moet u goed thuis zijn in OOP-ideeën.
In dit bericht worden verschillende objectgeoriënteerde programmeerinterviewvragen van beginners- tot expertniveau getoond. Je kunt dus elk sollicitatiegesprek doorstaan en je droompositie veiligstellen.
1. Wat is objectgeoriënteerd programmeren precies?
Objectgeoriënteerd programmeren (OOP's) is gebaseerd op werkelijke objecten in plaats van alleen op functies en processen. Er worden klassen gemaakt voor individuele producten.
Overerving, polymorfisme en verbergen zijn voorbeelden van real-world concepten die OOP's opnemen in programmering. Het maakt het ook mogelijk om data en code aan elkaar te koppelen.
2. Waarom zijn OOP's nodig?
Er zijn verschillende redenen waarom OOP's de voorkeur hebben, maar de volgende zijn de belangrijkste:
- Met OOP's kunnen mensen software gemakkelijk begrijpen, zelfs als ze niet bekend zijn met de implementatie.
- Oeps, verbeter de leesbaarheid, begrijpelijkheid en onderhoudbaarheid van de code met een factor tien.
- Met behulp van OOP's kunnen zelfs extreem grote applicaties eenvoudig worden gebouwd en bestuurd.
3. Welke voordelen bieden de OOPS-principes?
- OOPS, programmeerobjecten simuleren objecten uit de echte wereld, waardoor de complexiteit wordt verminderd en de helderheid van het programma wordt verbeterd.
- Objecten kunnen herhaaldelijk in veel programma's worden gebruikt.
- Elk object creëert een afzonderlijke entiteit waarvan de interne bewerkingen onafhankelijk zijn van andere systeemcomponenten.
- Door een paar nieuwe objecten te introduceren en een paar reeds bestaande te updaten, is het mogelijk om nieuwe functionaliteit toe te voegen of aan te passen aan veranderende bedrijfsomstandigheden.
- De processen of gegevensweergave van een OOPs-programma kunnen gemakkelijk kleine aanpassingen ondergaan.
4. Wat zijn de pijlers van het OOPs-concept?
Dit zijn de belangrijkste pijlers van OOP:
Erfenis: Hiermee kunnen klassen de attributen van een andere klasse erven.
Inkapseling: Dit wordt gedefinieerd als een objecteigenschap die kritieke informatie verbergt. Hierdoor blijven de gegevens verborgen voor klasleden. De specificaties beschrijven hoe het attribuut van het object in code wordt benaderd.
polymorfisme: Hiermee kunt u één activiteit op meerdere manieren uitvoeren. Het wordt bereikt door interfaces, waarin we één interface declareren die vervolgens meerdere keren wordt geïmplementeerd.
Abstractie: U kunt deze functie gebruiken om kritieke informatie voor de buitenwereld te verbergen en alleen de essentiële feiten te presenteren.
5. Wat is precies een les?
Een klasse is een prototype dat bestaat uit objecten in verschillende toestanden en met verschillende gedragingen. Het heeft een aantal methoden die worden gedeeld door de objecten in die klasse.
6. Wat is een object precies?
Een object is een entiteit uit de echte wereld die dient als de fundamentele eenheid van OOP's, zoals een stoel, kat of hond. Verschillende objecten hebben verschillende toestanden, eigenschappen en acties.
7. Wat zijn de beperkingen van OOP's?
- Het formaat is groter dan dat van andere toepassingen.
- Het vereist enige gewenning.
- Bepaalde soorten problemen vragen er niet om.
- Het was arbeidsintensief om te maken en in vergelijking met andere toepassingen werkt het langzamer.
8. Wat is erfenis?
Een begrip genaamd overerving verwijst naar het delen van de gevestigde structuur en het gedrag van een klasse door een andere klasse. Wanneer overerving wordt toegepast op een enkele klasse, wordt dit een enkele overerving genoemd; wanneer het van veel klassen afhangt, wordt het meerdere overervingen genoemd.
9. Wat is inkapseling precies?
Het idee van OOP's omvat ook inkapseling. Het beschrijft de vermenging van data en datamanipulatietechnieken. Bovendien helpt het bij het voorkomen van directe toegang tot sommige delen van een object.
10. Wat is polymorfisme?
In OOP-talen is polymorfisme een fundamenteel concept. Het laat zien hoe verschillende klassen een interface kunnen delen. Deze klassen kunnen allemaal unieke interface-implementaties hebben.
11. Wat is abstractie precies?
Abstractie is een concept voor objectgeoriënteerd programmeren (OOP's) dat wordt gebruikt om de structuur van objecten uit de echte wereld te creëren. Het "toont" alleen de belangrijkste kwaliteiten en "verbergt" externe informatie uit de buitenwereld. Het basisdoel van abstractie is om mensen te beschermen tegen onnodige informatie.
12. Wat is methode-overbelasting precies?
Het is mogelijk dat twee of meer procedures dezelfde naam hebben. Ze moeten echter verschillende parameters, verschillende aantallen parameters, verschillende soorten of beide hebben. Deze staan bekend als overbelaste methoden en de functie staat bekend als overbelasting van de methode.
13. Wat is methode-overriding precies?
Objectgeoriënteerd programmeren omvat het idee van methode-override. Het is een taalfunctie waarmee een subklasse of onderliggende klasse een aangepaste implementatie kan bieden van een methode die een van zijn superklassen of bovenliggende klassen al biedt.
14. Wat is precies een superklasse?
Een superklasse, ook wel een basisklasse genoemd, is een type klasse dat fungeert als de bovenliggende klasse van een andere klasse of klassen. De klasse Car heeft bijvoorbeeld een subklasse met de naam Vehicle.
15. Wat is precies een subklasse?
Een subklasse is een subklasse van een andere klasse. Een bestelwagen is bijvoorbeeld een subklasse Voertuig of afgeleide klasse.
16. Wat is statisch polymorfisme precies?
Tijdens het compileren vindt een type polymorfisme plaats dat bekend staat als statisch polymorfisme (statische binding). Overbelasting van methoden is een type polymorfisme tijdens het compileren.
17. Wat is dynamisch polymorfisme precies?
Een soort polymorfisme dat in runtime wordt opgelost, wordt runtime-polymorfisme genoemd, ook wel dynamisch polymorfisme (dynamische binding) genoemd. Het overschrijven van methoden is een illustratie van runtime-polymorfisme.
18. Beschrijf het begrip Constructor.
Een constructor is een specifieke methode van een klasse die automatisch wordt aangeroepen wanneer een klasse-instantie wordt gemaakt. Wanneer u de klasse opent, wordt deze gemaakt met dezelfde naam als de klasse en worden alle leden ervan geïnitialiseerd. De belangrijkste kenmerken van een constructeur zijn als volgt:
Er is geen retourtype voor constructeurs.
Overbelasting van constructeurs is mogelijk.
Het is niet verplicht om een constructor op te geven; the.NET Framework doet dit automatisch.
19. Wat zijn precies de toegangsmodifiers?
In objectgeoriënteerde talen zijn trefwoorden toegangsmodificatoren of toegangsspecificaties. Het helpt bij de configuratie van klassen, methoden en de toegankelijkheid van andere leden.
20. Wat is een destructor precies?
Een destructor is een methode voor het vrijgeven van de resources die aan een object zijn toegewezen. Wanneer een object wordt vernietigd, wordt deze methode automatisch aangeroepen.
21. Wat is hybride overerving precies?
Hybride overerving is een soort overerving die wordt gegenereerd door het mengen van verschillende vormen van overerving, zoals enkelvoudig, meervoudig, enzovoort.
22. Wat is precies hiërarchische overerving?
Meerdere subklassen erven van een bovenliggende klasse in de situatie van hiërarchische overerving. Een soort overerving waarbij meerdere klassen afstammen van een enkele ouder of basisklasse, staat bekend als hiërarchische overerving. De fruitklasse kan bijvoorbeeld subklassen bevatten zoals 'appel, 'mango', 'banaan', 'kers', enzovoort.
23. Wat zijn de nadelen van overerving?
Het verlengt en bemoeilijkt het uitvoeringsproces. Het vereist ook het schakelen tussen verschillende klassen. De ouder- en kindklassen zijn altijd onlosmakelijk met elkaar verbonden.
Wijzigingen in het leerplan zouden herzieningen voor zowel de ouder als de klas van het kind noodzakelijk maken. Overerving moet zorgvuldig worden uitgevoerd, anders zijn de resultaten verkeerd.
24. Wat is precies een uitzondering?
Een uitzondering is een incident dat de normale werking van de code verstoort. Om de uitvoering voort te zetten, kunt u deze uitzonderingen in Java afhandelen. In Java zijn er veel soorten vooraf gedefinieerde uitzonderingen en er wordt uitzonderingsverwerking geboden om de verhoogde uitzonderingen te beheersen met behulp van try-catch-blokken.
25. Wat is exception handling precies en wat zijn de voordelen ervan?
De belangrijkste methode in Java voor het omgaan met onverwachte runtime-fouten is het afhandelen van uitzonderingen. Hiermee kunt u runtime-fouten controleren die optreden tijdens de uitvoering van het programma.
De voordelen van het afhandelen van uitzonderingen zijn onder meer de mogelijkheid om de reguliere programmastroom te behouden terwijl uitzonderingen worden beheerd. Als er bijvoorbeeld een fout optreedt in een sectie van het programma, heeft dit geen effect op de rest van het programma als we de uitzondering behandelen met try-catch-blokken.
26. Wat zijn virtuele functies precies?
Virtuele functies zijn ook opgenomen in de functies van de bovenliggende klasse en worden overschreven door de subklasse. Deze routines helpen bij het bereiken van runtime-polymorfisme.
27. Wat is precies de vriendenfunctie?
Een vriendfunctie is een functie die bij een klasse hoort en die toegang heeft tot de openbare, privé of beschermde gegevens. Als de functie buiten de klasse is gedefinieerd, is het niet mogelijk om deze gegevens op te halen. De sleutelwoorden voor toegangscontrole privé, openbaar en beveiligd hebben geen invloed op een vriendverklaring, die overal in de klassenverklaring kan worden gedaan.
28. Wat is vuilnisophaling precies?
Garbage collection (GC) is een element van programmeertalen zoals C# en Java dat dient als geheugenherstelsysteem. Een garbage collection (GC)-engine is een onderdeel van een programmeertaal die het mogelijk maakt om automatisch geheugenruimte vrij te geven voor objecten die de toepassing niet meer gebruikt.
29. Wat is koppelen precies?
Het verwijst naar situaties waarin verschillende klassen op elkaar vertrouwen en kennis delen. Een sterke verbinding ontstaat wanneer een klasse gedetailleerde kennis heeft van een andere klasse. U kunt de zichtbaarheid van klassen, methoden of variabelen specificeren met behulp van toegangsmodifiers. Interfaces worden gebruikt om een zwakkere koppeling te bieden.
30. Wat is cohesie precies?
De manier waarop een component een bepaalde activiteit uitvoert, wordt de samenhang ervan genoemd. Een sterke, samenhangende aanpak zal eenvoudig de gedefinieerde taak uitvoeren, terwijl een zwakke, samenhangende methode de enkele taak in verschillende kleinere taken zou verdelen en deze vervolgens zou voltooien.
Het Java.io-pakket is behoorlijk coherent, maar het java.util-pakket is dat niet.
31. Beschrijf een try/catch-blok.
Wanneer een programma een fout tegenkomt vanwege onjuiste code of gegevens, geven "try" en "catch" aan hoe het te beheren. Een try-blok is de naam van het deel van de code waarin uitzonderingen optreden. Een catch-blok wordt gebruikt om uitzonderingen van try-blokken vast te leggen en af te handelen.
32. Beschrijf een laatste blok.
Het werkgedeelte van de code van het trefwoord try wordt als laatste aangegeven. Het geeft de code aan die altijd direct na de proef wordt uitgevoerd en eventuele catch-blokken voordat de methode is voltooid. Het laatste blok wordt altijd uitgevoerd, of er nu een uitzondering wordt gegooid of gevangen.
33. Wat is precies een interface?
Een interface is een combinatie van abstracte methoden en een door de gebruiker gedefinieerd gegevenstype. Een klasse implementeert een interface en neemt de abstracte functies van de interface over.
Een klasse vertegenwoordigt de eigenschappen en het gedrag van een object, terwijl een interface het gedrag omvat dat een klasse implementeert. De interface vertegenwoordigt "wat", terwijl de klasse "hoe" weergeeft.
34. Wat is compositie precies?
De compositie kan worden gebruikt om verbinding te maken. Het toont een sterke objectkoppeling tussen de afhankelijke en onafhankelijke objecten, in tegenstelling tot aggregatie. Het afhankelijke object bestaat in dit geval niet en wordt verwijderd als het bovenliggende object wordt gewist.
35. Wat is constructor chaining precies?
Constructor chaining is een techniek om de ene constructor van een andere aan te roepen in relatie tot de huidige objectreferentie. Er zijn twee opties:
- Er kan naar de constructor in de huidige klasse worden verwezen met het trefwoord "this".
- Het sleutelwoord "super" wordt gebruikt om de constructor uit de basisklasse aan te roepen.
Conclusie
Objectgeoriënteerd programmeren vereist dat u vooraf over de structuur van het programma nadenkt en voorbereidingen treft. Onderzoeken hoe de vereisten kunnen worden opgedeeld in herbruikbare basisklassen die kunnen worden gebruikt om instanties van dingen te maken.
Over het algemeen zorgt het omarmen van OOP voor verbeterde data structuren en herbruikbaarheid, wat op de lange termijn tijd bespaart. Zien Hashdork's interviewserie voor hulp bij de voorbereiding van een sollicitatiegesprek.
Laat een reactie achter