Geekflare wird von unserem Publikum unterstützt. Es kann sein, dass wir durch den Kauf von Links auf dieser Seite Affiliate-Provisionen verdienen.
Unter Karriere und Entwicklung Zuletzt aktualisiert: September 24, 2023
Weitergeben:
Invicti Web Application Security Scanner - die einzige Lösung, die eine automatische Überprüfung von Schwachstellen mit Proof-Based Scanning™ ermöglicht.

Fragen zu objektorientierter Programmierung können Programmierern und Entwicklern helfen, ihr Wissen über Schlüsselkonzepte in der Welt der Programmierung zu verbessern.

OOP ist eines der notwendigsten und notwendigsten Programmierparadigmen, das sich auf Objekte und Klassen anstelle von Prozeduren und Funktionen konzentriert.

Einige OOP-basierte Programmiersprachen sind Objective-C, Java, Ada, Perl, Python, C und mehr.

Große Unternehmen suchen Entwickler, die sich mit objektorientierten Ansätzen und Mustern auskennen.

Wenn Sie also vorhaben, zu einem solchen Vorstellungsgespräch zu erscheinen, müssen Sie die OOP-Konzepte in- und auswendig kennen.

Schauen wir uns einige der häufig gestellten OOP-Interviewfragen und -Antworten an, die Ihnen bei der Vorbereitung auf Interviews und Tests helfen.

Objektorientierte Programmierung (OOP): Ein Überblick

oops

OOP ist ein Programmierparadigma, bei dem sich alles um Objekte dreht. Dabei werden die Objekte als Instanzen der realen Welt betrachtet, wie eine Klasse, die einige in der Klassenvorlage festgelegte Verhaltensweisen und Merkmale enthält.

Betrachten wir zum Beispiel ein Auto. Nach dem OOPs-Modell:

  • Objekt: Ein Auto. Es kann ein beliebiger Typ oder ein beliebiges Modell sein, z.B. das Auto, das Sie besitzen.
  • Klasse: Das Modell oder der Typ des Autos, z. B. BMW, Chevrolet, Kia, Audi und andere.
  • Merkmale: Farbe des Autos, Fahrgestellnummer des Autos, Motortyp, Getriebeart und mehr.
  • Verhalten: Wie man den Gang einlegt, wie man das Auto startet und mehr.

Dabei werden Merkmale auch als Eigenschaften, Attribute oder Daten bezeichnet, während Verhaltensweisen in Programmiersprachen als Prozeduren, Methoden oder Funktionen bezeichnet werden.

Wir beginnen auch mit einigen häufig gestellten OOP-Interview-Fragen.

Was versteht man unter dem Begriff OOPs?

Antwort: Objektorientierte Programmierung (OOP) ist ein Programmiermodell, das auf Objekten und Klassen anstelle von Prozeduren und Funktionen basiert. Einzelne Objekte werden in Klassen angeordnet. OOPs beschreibt die reale Welt mit Konzepten wie Polymorphismus, Hiding, Vererbung usw. und Programmierparadigmen.

OOPs binden Code und Daten zusammen. Objekte sind reale Entitäten, die über Klassen mit spezifischen Eigenschaften und Verhaltensweisen definiert werden, während eine Klasse als Muster für ein bestimmtes Objekt definiert ist. Sie wird auch als benutzerdefinierter Datentyp bezeichnet.

Dazu gehören neben der mobilen Anwendung auch Programme für Design und Fertigung. Sie können OOP zum Beispiel für Software zur Simulation von Fertigungssystemen verwenden.

Welche anderen Programmierparadigmen als OOPs gibt es?

Programmier-Paradigmen

Antwort: Programmierparadigmen sind eine Methode zur Kategorisierung von Programmiersprachen auf der Grundlage der Eigenschaften der einzelnen Sprachen. Es gibt zwei Arten von Programmierparadigmen:

  • Imperatives Programmierparadigma: Es konzentriert sich darauf, wie die Logik ausgeführt wird und definiert den Kontrollfluss. Dazu gehören das prozedurale Programmierparadigma, die objektorientierte Programmierung (OOP) und die parallele Programmierung.
  • Deklaratives Programmierparadigma : Es konzentriert sich darauf, was im Programm ausgeführt werden soll und definiert die Logik, nicht den Kontrollfluss. Dazu gehören das logische Programmierparadigma, das funktionale Programmierparadigma und das Paradigma der Datenbankprogrammierung.

Was ist der Unterschied zwischen OOP und SOP?

Antwort: Lassen Sie uns anhand dieser Tabelle den Unterschied zwischen OOP und SOP verstehen:

Objektorientiertes Programmieren Strukturorientierte Programmierung
Es ist ein Programmiermodell, das auf Objekten anstelle von Prozeduren und Funktionen basiert.Es gibt dem Programm eine logische Struktur, bei der die Programme in Funktionen unterteilt sind.
Verfolgt einen Bottom-Up-AnsatzVerfolgt einen Top-Down-Ansatz
Bietet Data Hiding oder VerkapselungBietet keine Datenverschleierung
Es kann komplexe Probleme lösen.Es kann mittelschwere Probleme lösen.
Geringe Redundanz, da Code wiederverwendet werden kannEs unterstützt die Wiederverwendbarkeit von Code nicht.
FlexiblerWeniger flexibel
Sein Hauptaugenmerk gilt den Daten.Ihr Hauptaugenmerk liegt auf der logischen Struktur eines Programms.

Was sind die Hauptmerkmale von OOPs?

featuresofoops

Antwort: Hier sind die wichtigsten Merkmale von OOPs:

  • Vererbung
  • Kapselung
  • Abstraktion
  • Polymorphismus
  • Überschreibung von Methoden
  • Überladen von Methoden
  • Objekte
  • Klassen
  • Konstruktoren und Destruktoren

Vererbung, Polymorphismus und Kapselung sind die grundlegenden Elemente der OOP, die sie von Nicht-OOP-Sprachen unterscheiden.

Was ist Verkapselung?

Antwort: Kapselung ist eine Methode, bei der Klassen, Variablen, Methoden und mehr in einer Kapsel untergebracht werden, die für die Ausführung der Arbeit erforderlich ist und dem Benutzer dieselbe Kapsel präsentiert. Einfach ausgedrückt, werden alle notwendigen Methoden und Daten zusammengefasst und die unnötigen Details vor dem Benutzer verborgen.

Es kann auch auf andere Weise definiert werden:

  • Datenbindung: Die Kapselung ist ein Prozess, bei dem Datenmitglieder zusammen mit den Methoden als Klasse oder als Ganzes gebunden werden.
  • Verstecken von Daten: Bei der Kapselung werden unnötige Informationen versteckt, z.B. Zugriffsbeschränkungen für die Mitglieder eines Objekts usw.

Was ist Polymorphismus?

Polymorphismus

Antwort: Um Polymorphismus zu verstehen, müssen wir den Begriff in zwei Wörter zerlegen, die ihn bilden:

"Poly" bedeutet "viele".

"Morph" bedeutet "Formen".

Polymorphismus kann auch als ein Objekt beschrieben werden, das verschiedene Formen hat.

In OOPs wird er als der Prozess bezeichnet, durch den sich bestimmte Daten, Objekte, Methoden oder Code unter verschiedenen Kontexten oder Umständen unterschiedlich verhalten. Es gibt zwei Arten von Polymorphismus im OOPs-Modell:

  • Laufzeit-Polymorphismus
  • Polymorphismus zur Kompilierzeit

Mit anderen Worten, es handelt sich um die mehrfache Definition einer einzigen Schnittstelle. Ein Beispiel: Es gibt eine Klasse namens 'Fahrzeug', die eine Methode 'Geschwindigkeit' enthält. Es ist unmöglich, die Geschwindigkeit zu definieren, da verschiedene Fahrzeuge unterschiedliche Geschwindigkeiten haben. Daher kann dies in den Unterklassen verschiedener Definitionen für verschiedene Fahrzeuge definiert werden.

Was ist statischer Polymorphismus?

Antwort: Statischer Polymorphismus ist auch als Polymorphismus zur Kompilierzeit bekannt. Es handelt sich um eine Funktion, durch die ein Objekt mit dem jeweiligen Operator oder der Funktion auf der Grundlage der Werte verknüpft werden kann. Dies kann durch Operatorüberladung oder Methodenüberladung erreicht werden.

Dabei verwenden die Methoden einen ähnlichen Namen, aber der Parameter des jeweiligen Namens variiert. Das Objekt verhält sich bei einem ähnlichen Auslöser unterschiedlich. So werden mehrere Methoden in derselben Klasse implementiert.

Was ist dynamischer Polymorphismus?

dynamischer Polymoirphismus

Antwort: Dynamischer Polymorphismus ist auch als Laufzeit-Polymorphismus bekannt. Er bezieht sich auf die Art der Polymorphie in OOPs, bei der die tatsächliche Einbindung der Funktion während der Ausführung oder Laufzeit festgelegt wird. Dies kann durch das Überschreiben von Methoden erreicht werden.

Ein Beispiel: Es werden zwei Klassen, Fahrrad und Yamaha, erstellt und die Klasse Yamaha erweitert die Klasse Fahrrad, indem sie deren run()-Methode überschreibt. Da die Methode der Unterklasse die Methode der übergeordneten Klasse außer Kraft setzt, wird sie zur Laufzeit aufgerufen.

Was ist eine Klasse?

Antwort: Eine Klasse kann als Blaupause oder Vorlage definiert werden, die einige Werte, die sogenannten Mitgliedsdaten, enthält. Sie enthält auch einige Regeln, die als Funktionen oder Verhaltensweisen bezeichnet werden. Wenn Sie ein Objekt erstellen, übernimmt es automatisch die in der Klasse definierten Funktionen und Daten.

Eine Klasse ist jedoch eine Blaupause oder Vorlage für Objekte. Auf der Grundlage einer Klasse können Sie so viele Objekte entwerfen, wie Sie benötigen. Zum Beispiel wird zunächst eine Vorlage für ein Auto erstellt. Danach werden verschiedene Einheiten von Autos auf der Grundlage der Vorlage des Autos entworfen.

Was ist ein Objekt?

objecf

Antwort: Das Objekt kann als Instanz einer Klasse definiert werden, die die Instanz der in der Vorlage definierten Verhaltensweisen und Mitglieder enthält. Das Objekt ist die eigentliche Entität, mit der ein Benutzer interagiert, aber die Klasse ist nur ein Entwurf für dieses Objekt.

Objekte haben auch einige Eigenschaften oder Verhaltensweisen und verbrauchen Platz, z.B. ein bestimmtes Automodell.

Was ist der Unterschied zwischen einer Klasse und einer Struktur?

Antwort: Lassen Sie uns dies mit Hilfe einer Tabelle verstehen:

Klasse Struktur
Klassen sind Referenztypen.Strukturen sind von Werttypen.
Sie werden dem Heap-Speicher zugewiesen.Sie werden auf den Stack-Speicher zugewiesen.
Die Zuweisung ist im großen Referenztyp billigerDie Zuweisung ist bei einem Wertetyp billiger als bei einem Referenztyp
Er hat unbegrenzte Funktionen.Er hat begrenzte Funktionen.
Eine Klasse wird in großen Programmen verwendet.Eine Struktur wird in kleinen Programmen verwendet.
Sie enthält einen Konstruktor und einen Destruktor.Sie enthält einen parametrisierten oder statischen Konstruktor.
Sie verwendet das Schlüsselwort new() jedes Mal, wenn sie Instanzen erstellt.Sie können problemlos Instanzen mit oder ohne Schlüsselwörter erstellen.
Eine Klasse kann von einer anderen Klasse erben.Eine Struktur darf nicht erben.
Die Datenmitglieder einer Klasse können geschützt werden.Die Datenmitglieder einer Struktur können nicht geschützt werden.
Funktionsmitglieder können abstrakt oder virtuell seinFunktionsmitglieder können nicht abstrakt oder virtuell sein
Zwei verschiedene Variablen einer Klasse können die Referenz auf ein ähnliches Objekt enthalten.Jede Variable enthält ihre eigene Kopie.

Was ist Vererbung?

Vererbung

Antwort: Vererbung ist eine der Funktionen von OOPs, die es einer Klasse ermöglicht, die wichtigsten Eigenschaften einer anderen Klasse zu erben. Wenn zum Beispiel 'Fahrzeug' eine Klasse ist, dann sind 'Auto', 'Fahrrad' usw. andere Klassen, die Schlüsseleigenschaften von der Klasse 'Fahrzeug' erben können.

Diese Funktion hilft dabei, redundanten Code loszuwerden und damit den Umfang des Codes zu verringern. Vereinfacht ausgedrückt, ist Vererbung definiert als der Empfänger von Eigenschaften von der Elternklasse an die Kindklasse. Hier ist "Fahrzeug" die übergeordnete Klasse und "Auto" oder "Fahrrad" sind die untergeordneten Klassen des obigen Beispiels.

Auf diese Weise können Sie den Programmiercode einer Klasse in einer anderen Klasse wiederverwenden, ohne denselben Code noch einmal zu schreiben oder dabei Zeit zu verschwenden.

Was sind die verschiedenen Arten der Vererbung?

Antwort: Es gibt verschiedene Arten der Vererbung, die im OOP-Modell verwendet werden, wie z.B.:

  • Einfachvererbung: Definiert als die Vererbung, bei der eine einzelne Klasse gemeinsame Funktionen einer einzelnen Basisklasse erbt.
  • Mehrfache Vererbung: Sie kommt zum Tragen, wenn eine einzelne Klasse mehr als eine Klasse erbt.
  • Mehrstufige Vererbung: Dies bedeutet, dass eine Klasse von anderen Klassen erbt, die wiederum Unterklassen einer anderen Klasse sind.
  • Hierarchische Vererbung: Sie bezieht sich auf die Vererbung, bei der eine Klasse mehrere Unterklassen hat.
  • Hybride Vererbung: Es handelt sich um eine Kombination aus mehrstufiger und mehrfacher Vererbung.

Was sind die Grenzen der Vererbung?

Beschränkungen der Vererbbarkeit

Antwort: Einige der Einschränkungen der Vererbung sind die folgenden:

  • Sie erhöht den Aufwand und die Zeit, die für die Ausführung des Programms erforderlich sind. Das liegt daran, dass häufig von einer Klasse zu einer anderen Klasse gesprungen werden muss, was Zeit kostet.
  • Die übergeordnete Klasse und die untergeordnete Klasse sind sehr eng miteinander gekoppelt, so dass die Flexibilität eingeschränkt ist.
  • Sie muss sorgfältig eingearbeitet werden, da sie sonst zu unzureichenden oder falschen Ergebnissen führen würde.
  • Eine einzige Änderung im Programm kann zu einer Änderung des Codes sowohl in der übergeordneten als auch in der untergeordneten Klasse führen.

Was ist Abstraktion?

Antwort: Die Abstraktion ist eines der Elemente von OOPs. Die Hauptaufgabe der Abstraktion besteht darin, die Komplexität zu beherrschen. Dies geschieht, indem unerwünschte Details vor den Benutzern verborgen werden. Auf diese Weise können Benutzer komplexe Logik auf der Grundlage der Abstraktion implementieren, ohne sich Gedanken über die versteckte Komplexität zu machen.

Wenn Sie beispielsweise ein Kaffeeliebhaber sind, müssen Sie wissen, wie viel Milch, Kaffeebohnen und Zuckerwürfel Sie hinzufügen müssen, um eine Tasse Kaffee mit einer Kaffeemaschine zuzubereiten. Es macht keinen Sinn, über das Funktionsprinzip dieser Maschine nachzudenken. Die Kaffeemaschine ist eine versteckte Komplexität, die Sie nicht kennen müssen, aber der Prozess der Zubereitung eines Kaffees ist eine Notwendigkeit.

Es gibt zwei Arten der Abstraktion:

  • Datenabstraktion
  • Prozess-Abstraktion

Was ist ein Konstruktor?

Konstrukteur

Antwort: Ein Konstruktor ist eine spezielle Methode in der Klasse oder Struktur, deren Name dem Klassennamen ähnlich ist. Sie dient dem Zweck der Initialisierung von Objekten. Er hilft auch bei der Instanziierung von Mitgliedsdaten sowie von Methoden, um Objekte der Klasse zuzuordnen.

Bei der Erstellung eines Konstruktors sind ein paar Dinge zu beachten:

  • Er wird genauso benannt wie der Name der Klasse.
  • Er kann nicht abstrakt, endgültig oder statisch sein.
  • Er hat keine Variable vom Typ Rückgabe.

Was sind die verschiedenen Arten von Konstruktoren in C?

Antwort: In C gibt es hauptsächlich drei Arten von Konstruktoren:

  • Standard-Konstruktor: Ein Konstruktor, der keine Parameter oder Argumente in der Definition hat. Diese Art von Konstruktor wird verwendet, um die Datenelemente oder Variablen mit realen Werten zu initialisieren.
  • Parametrisierter Konstruktor: Er enthält Argumente oder Parameter in der Deklaration und Definition. Mehr als ein Parameter kann den parametrisierten Konstruktor durchlaufen. Er wird zum Überladen verwendet, um die Unterschiede in mehreren Konstruktoren zu kennen.
  • Konstruktor kopieren: Es handelt sich um eine Mitgliedsfunktion, die ein anderes Objekt einer ähnlichen Klasse verwendet, um ein Objekt zu initialisieren. Außerdem hilft er dabei, Daten von einem Objekt in ein anderes zu kopieren.

Was ist ein Destruktor?

Destruktor

Antwort: Ein Destruktor ist eine Methode, die automatisch aufgerufen wird, wenn ein Objekt vernichtet wird. Er führt bestimmte Aktionen aus:

  • Wiederherstellung des Heap-Speicherplatzes, der zuvor bei der Initialisierung des Objekts zugewiesen wurde
  • Schließen von Datenbankverbindungen und Dateien
  • Freigeben von Netzwerkressourcen und Ressourcensperren
  • Ausführen verschiedener Haushaltsaufgaben

Mit anderen Worten: Ein Destruktor vernichtet die vom Konstruktor initialisierten Objekte. Es handelt sich um eine spezielle Mitgliedsfunktion mit demselben Namen wie der Klassenname, der jedoch ein (~)-Symbol vorangestellt ist. Ein Destruktor kann überladen werden, da es sich um eine Einwegfunktion handelt.

Was ist Garbage Collection (GC)?

Antwort: Garbage Collection (GC) ist ein in Programmiersprachen wie Java und C# integriertes Element zur Wiederherstellung des Speichers. Eine GC-fähige Programmiersprache enthält mindestens einen Garbage Collector, der automatisch Speicherplatz freigibt, der in einem Programm nicht mehr benötigt wird.

Die Garbage Collection bestätigt, dass sich das Programm noch innerhalb seiner Speicherquote befindet. Sie verhindert, dass die Entwickler den Speicher des Programms manuell verwalten müssen, wodurch speicherbezogene Fehler minimiert werden.

Was ist Ausnahmebehandlung?

Ausnahmebehandlung

Antwort: Die Behandlung von Ausnahmen ist eine Methode, um auf unerwartete Ereignisse zu reagieren, während ein Computerprogramm läuft. Programmierer müssen unerwünschte Ereignisse (Ausnahmen) "behandeln", um zu verhindern, dass ein System oder Programm abstürzt. Ohne diese Methode können Ausnahmen den normalen Betrieb eines Programms stören und zu Ineffizienzen oder Risiken führen.

Was ist ein try/catch-Block?

Antwort: Versuchen Sie oder fangen sind die Schlüsselwörter, die für die Behandlung von Ausnahmen aufgrund von Codierungs- oder Datenfehlern während der Ausführung eines Programms stehen.

  • Ein Try-Block ist der Codeblock, in dem Ausnahmen auftreten
  • Ein Fang-Block behandelt und fängt try-Block-Ausnahmen ab

Die Anweisungen Versuchen Sie und fangen werden häufig in verschiedenen Programmiersprachen verwendet, darunter C . C#, Java, SQL und JavaScript. Zu jeder try-Anweisung gehört auch eine catch-Anweisung, um die Ausführung zu steuern. Hier sind noch ein paar Dinge, die Sie bei versuchen - und catch-Anweisungen beachten sollten:

  • Auf einen try-Block folgt ein catch-Block.
  • Auf einen try-Block folgt mindestens ein catch-Block.
  • Auf einen try-Block folgt ein weiterer try-Block und auf diesen wiederum der catch-Block.

Fazit

OOP ist ein wichtiges Konzept, das Programmierer kennen sollten. Wenn Sie es gründlich lernen, können Sie auch gut in Sprachen programmieren, die die OOP-Konzepte verwenden.

Wenn Sie sich auf ein Vorstellungsgespräch oder einen Test vorbereiten, werden Ihnen die obigen Fragen und Antworten helfen, Ihr Wissen über OOP-Konzepte wie Klassen, Objekte, Kapselung, Polymorphismus, Vererbung, Abstraktion und mehr aufzufrischen. Auf diese Weise können Sie selbstbewusst in die Vorstellungsgespräche gehen und diese erfolgreich bestehen, um Ihre Karriere voranzutreiben.

Sie können sich auch einige dieser SQL-Interviewfragen ansehen.

  • Durga Prasad Acharya
    Autor
    Durga Prasad Acharya ist ein freiberuflicher technischer Redakteur, der gerne über neue Technologien wie KI & ML, Cybersicherheit, Webhosting, SaaS, Cloud Computing und mehr schreibt. Neben dem Schreiben ist er auch Webdesigner und hat eine Leidenschaft für... mehr lesen
Dank an unsere Sponsoren
Weitere gute Lektüre zum Thema Karriere
Energie für Ihr Unternehmen
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti nutzt das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu überprüfen und innerhalb weniger Stunden verwertbare Ergebnisse zu erzielen.
    Versuchen Sie Invicti
  • Web Scraping, Residential Proxy, Proxy Manager, Web Unlocker, Search Engine Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie Brightdata
  • Monday.com ist ein All-in-One-Betriebssystem, mit dem Sie Projekte, Aufgaben, Arbeit, Vertrieb, CRM, Arbeitsabläufe und vieles mehr verwalten können.
    Versuch Montag
  • Intruder ist ein Online-Schwachstellen-Scanner, der Schwachstellen in Ihrer Infrastruktur aufspürt, um kostspielige Datenschutzverletzungen zu vermeiden.
    Versuchen Sie Intruder