OOPS-Konzepte für Anfänger erklärt

Veröffentlicht: 2022-12-20

Die Rolle von Computerprogrammen besteht darin, komplexe reale Anforderungen erfolgreich in computerverständliche Anweisungen zu modellieren. Um dies zu erreichen, arbeiten mehrere Programmierparadigmen mit unterschiedlichen Philosophien. Dazu gehören funktionale Programmierung, prozedurale Programmierung, objektorientierte Programmierung und mehr. Diese Paradigmen unterscheiden sich in ihrer Funktionsweise und sind daher sprachunabhängig.

In diesem Artikel werden wir uns ausführlich mit der objektorientierten Programmierung befassen. Bevor wir uns mit der Komplexität von OOPS befassen, hier sind einige wichtige OOPs-Konzepte in Java, die Sie im Hinterkopf behalten sollten, da sie die vier Säulen sind, auf denen OOPS arbeitet:

  • Abstraktion
  • Verkapselung
  • Nachlass
  • Polymorphismus

Wir werden später in diesem Artikel ausführlich auf diese OOPs-Konzepte eingehen. Aber zuerst wollen wir verstehen, was genau objektorientierte Programmierung ist.

Inhaltsverzeichnis

Was ist objektorientierte Programmierung?

Vor der objektorientierten Programmierung war die funktionale Programmierung das vorherrschende Programmierparadigma. Sprachen wie C und COBOL folgten diesem Paradigma, sodass die mit diesen Sprachen geschriebenen Programme eine Reihe von Anweisungen waren. Diese verwendeten Subroutinen oder Prozeduren, um die Quellcodes modular und besser lesbar zu halten. Das Paradigma der funktionalen Programmierung konzentrierte sich mehr auf Logik als auf Daten, und das Programm würde sowohl die Daten als auch das Programm kombinieren.

Programmiersprachen, wie C++, C#, Java und mehr, gingen zum Ansatz der objektorientierten Programmierung über, nachdem C. OOPs priorisierte Daten, die einfache logikbasierte Anweisungen überschrieben. Im Wesentlichen ist ein Objekt alles, was Sie in Ihrem Programm modellieren möchten. Es könnte alles und jedes sein. Wenn es jetzt vage klingt, bleiben Sie bis zum Ende, und Sie werden genau verstehen, was wir damit meinen!

Was sind Klassen und Objekte?

Objektorientierte Programmierung arbeitet mit Klassen und Objekten. Daher ist es wichtig zu verstehen, was diese beiden Begriffe bedeuten und wie sie sich voneinander unterscheiden. Stellen Sie sich Klassen einfach als eine Blaupause vor, die Ihnen hilft, Objekte nach Bedarf zu erstellen.

Die Rolle von Klassen besteht darin, verschiedene Attribute und unterschiedliche Verhaltensweisen zu definieren. Wenn wir also ein Fahrzeug in unserem Programm modellieren würden, würden wir eine Klasse für das Fahrzeug erstellen und Attribute wie Anzahl der Räder, Farbe, Modell, Alter usw. beibehalten; während die Verhaltensweisen wie Starten, Beschleunigen, Bremsen usw. wären. Wie Sie sehen können, sind die von uns definierten Attribute und Verhaltensweisen nicht fahrzeugspezifisch. Sie umfassen im Wesentlichen das unterschiedliche Verhalten und die Eigenschaften verschiedener Fahrzeuge. Auf diese Weise können Sie, wenn Sie ein neues Fahrzeugobjekt instanziieren möchten, die Attribute für das betreffende Fahrzeug angeben. Auf diese Weise fungieren Klassen als perfekte Blaupause zum Erstellen neuer Objekte mit denselben Attributen und Verhaltensweisen.

Hier ist also, wie unser Klassenfahrzeug und seine verschiedenen Attribute und Verhaltensweisen aussehen werden. Denken Sie daran, dass wir die Syntax von Java verwendet haben, um den Code zu schreiben, aber das Programmierparadigma ist sprachneutral.

Fahrzeug der öffentlichen Klasse{

private Zeichenfolge _color;

privates int _model;

private Zeichenfolge _makeYear;

private Zeichenfolge _fuelType;

öffentlich void start(){ }

öffentliche Leere beschleunigen () {}

öffentliche Leerstelle () {}

}

Mit der definierten Klasse können wir verschiedene Objekte mit unterschiedlichen Attributen erstellen, während wir gemeinsame Verhaltensweisen haben. Zum Beispiel:

Objekt 1
Modell Alt
Kraftstoff CNG
Machen 2018
Start()

Unterbrechung()

Beschleunigen()

Objekt 2
Modell WagenR
Kraftstoff Benzin
Machen 2017
Start()

Unterbrechung()

Beschleunigen()

Auf diese Weise können Klassen in der objektorientierten Programmierung Ihnen helfen, die Modellierung realer komplexer Verhaltensweisen und Systeme zu vereinfachen. Alle Daten, Attribute und Funktionen sind an das Objekt einer beliebigen Klasse gebunden. Auf diese Weise entfällt die Notwendigkeit, globale Daten zu speichern. Dies ist ein wichtiger Unterschied zwischen den Ansätzen der prozeduralen Programmierung und der objektorientierten Programmierung.

Nachdem die Grundlagen geklärt sind, schauen wir uns die vier Säulen der objektorientierten Programmierung im Detail an:

Holen Sie sich eine Data-Science-Zertifizierung von den besten Universitäten der Welt. Lernen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Abstraktion

Bei der Abstraktion geht es darum, sich darauf zu konzentrieren, was getan wird, anstatt darauf, wie die Aufgabe ausgeführt wird. Die ganze Idee hinter der Abstraktion besteht darin, beim Aufbau unabhängiger Module zu helfen, die dazu gebracht werden können, miteinander zu interagieren, ohne sich auf andere Weise aufeinander verlassen zu müssen. Auch die Wartung eines Programms wird so einfacher und überschaubarer. Mit Abstraktion versuchen OOPs, nur wesentliche Merkmale darzustellen, ohne darauf einzugehen, wie diese Merkmale implementiert werden oder wie die Interna des Systems funktionieren.

Die Idee hinter einem der wichtigsten OOPS-Konzepte in Python ist, dass Programmierer sich nur auf die Dinge konzentrieren müssen, die für das aktuelle Modul direkt wichtig sind. Die Änderung eines Moduls sollte sich nicht direkt auf andere unabhängige Module auswirken. Ein Programmierer braucht nur Kenntnisse über das aktuelle Modul und was es gibt. Es ist nicht notwendig, die Hintergrundfunktionen des Moduls zu verstehen, um das Erforderliche zu erreichen; daher werden diese Informationen für beste Ergebnisse abstrahiert.

Wenn Sie die Idee der Abstraktion über das Programmieren hinaus betrachten, werden Sie erkennen, dass Abstraktion im Wesentlichen überall ist. Die Gegenstände, mit denen wir täglich zu tun haben, werden uns auf verschiedenen Ebenen abstrahiert. Zum Beispiel wissen wir nicht, wie das Innenleben unserer Autobremse funktioniert, aber wir wurden mit einem Pedal ausgestattet, um die Bremsen zu betätigen, während wir den Mechanismus hinter den Vorhängen abstrahieren. Auf diese Weise brauchen Sie sich keine Gedanken darüber zu machen, wie es funktioniert; Sie müssen nur das Pedal drücken.

Verkapselung

Das Konzept der Kapselung ist eng an das bisherige Konzept der Abstraktion gebunden. Bei der Kapselung geht es im Wesentlichen darum, die Lösung für ein Problem bereitzustellen, ohne dass der Endbenutzer die Domäne des Problems vollständig verstehen muss. Dazu bindet die Kapselung alle Daten und Verhaltensweisen zu einer Einheit zusammen. Auf diese Weise wird verhindert, dass der Endbenutzer die inneren Elemente kennt, wo immer Abstraktion implementiert wird.

Der Benutzer kann nicht direkt auf die Daten zugreifen und verwendet exponierte Funktionen, um bei Bedarf auf die Daten zuzugreifen. Durch das Verbergen der Interna des Objekts schützt das OOPS-Programmierparadigma die Integrität der Module und erlaubt Benutzern nicht, die internen Daten in einen inkonsistenten Zustand zu versetzen. Wenn dies nicht getan wird, kann dies auf lange Sicht viele Probleme verursachen. Auf diese Weise geht es also bei der Kapselung mehr darum, Komplexität ausfallsicher aufzudecken und weniger darum, Komplexität vollständig zu verbergen.

Nachlass

Vererbung ist ein weiteres leistungsstarkes Merkmal des Paradigmas der objektorientierten Programmierung. Die Rolle der Vererbung besteht darin, Klassen effizient und schnell in einer Hierarchie anzuordnen und zu organisieren, um es diesen Klassen zu ermöglichen, Verhalten und Attribute von Klassen zu erben, die in der Hierarchie höher liegen. Im Wesentlichen kann Vererbung als eine „ist eine Beziehung“ verstanden werden, was der Art und Weise, wie wir über Dinge in der realen Welt sprechen, sehr ähnlich ist.

Zum Beispiel sagen wir, dass „ein Papagei ein Vogel ist“. Das bedeutet, dass ein Papagei ein Objekt der Klasse Vogel ist und daher einige Attribute und Verhaltensweisen von der breiteren Klasse erbt. Das ist jedoch nicht richtig, wenn wir sagen, dass eine Bank ein Bankkonto ist. So funktioniert die Hierarchie bei der Vererbung, und Sie können Verhaltensweisen und Implementierungen definieren, die später für spezialisierte Klassen spezialisiert werden können. Denken Sie daran, dass die Vererbung nicht rückwärts funktioniert. Die übergeordnete Klasse wird also niemals etwas von der untergeordneten Klasse erben. Untergeordnete Klassen erben jedoch sowohl Attribute als auch Verhaltensweisen von übergeordneten Klassen, abhängig von der Art dieser Attribute und Verhaltensweisen (öffentlich oder privat). Vererbung ist eine Möglichkeit, Ihr Programm wiederzuverwenden und kann Ihnen helfen, Ihren gesamten Quellcode kürzer und viel verständlicher zu machen. Aber Sie müssen bedenken, dass Sie nicht umhergehen sollten, Vererbungsebenen nacheinander hinzuzufügen, wenn dies nicht erforderlich ist.

Sehen Sie sich unsere US - Data Science-Programme an

Professional Certificate Program in Data Science und Business Analytics Master of Science in Datenwissenschaft Master of Science in Datenwissenschaft Advanced Certificate Program in Data Science
Executive PG-Programm in Data Science Bootcamp für Python-Programmierung Professional Certificate Program in Data Science für die Entscheidungsfindung in Unternehmen Fortgeschrittenes Programm in Data Science

Polymorphismus

Polymorphismus ist eines der vielen wichtigen OOPS-Konzepte in Python und Java, das sich im Wesentlichen um viele verschiedene mögliche Implementierungen beliebiger ausführbarer Einheiten und all die subtilen Unterschiede kümmert, die im Hintergrund ablaufen, ohne den Benutzer auf diese Änderungen aufmerksam zu machen. Polymorphismus erleichtert es, Computerprogramme problemlos um spezialisierte Objekte zu erweitern.

Wenn Sie beispielsweise einen Text auf Papier schreiben möchten, können Sie einen Stift, einen Marker, einen Buntstift oder sogar einen Bleistift verwenden. Alles, was Sie brauchen, ist etwas, das in Ihre Hand passt und Ihnen hilft, Symbole zu erstellen, während Sie es gegen ein Papier drücken. Der Akt des Schreibens hilft Ihnen also, Symbole auf Papier zu bringen, während welches Instrument Sie benötigen, von Ihrer Wahl abhängt.

In diesem Sinne ist die Vererbung eine Möglichkeit für das Programm, Polymorphie zu erreichen, wobei die benutzerdefinierte Implementierung der Methode das in der geerbten Klasse definierte Verhalten überschreibt. Dieser Vorgang wird auch als Laufzeitpolymorphismus oder Methodenüberschreibung bezeichnet. Es gibt eine andere Form des Polymorphismus, die auch als Methodenüberladung bekannt ist. Dabei kommt die Vererbung überhaupt nicht ins Spiel. Beim Überladen von Methoden bleibt der Methodenname gleich, während sich die Argumente in der Methode je nach auszuführender Aufgabe unterscheiden.

Abschließend

Damit kommen wir zum Ende unserer Diskussion über OOPS-Konzepte in Java . Die bisher besprochenen Dinge bilden die Grundlage, die Sie benötigen, um mit der objektorientierten Programmierung zu beginnen, ohne sich um irgendetwas kümmern zu müssen. Sie müssen die Diskussion umsetzen und Dinge praktisch ausprobieren; Schließlich geht es beim Programmieren um Üben und Durchhalten.

Das Wissen über OOPS wird Ihnen auch bei Ihrer Data-Science-Reise helfen, da Sie Sprachen wie Python verwenden werden, die auf dem OOPS-Paradigma beruhen. Data Science ist ein boomendes Gebiet, und es mangelt nicht an Möglichkeiten für Menschen mit den richtigen Fähigkeiten und Kenntnissen. Schauen Sie sich unseren MS in Data Science von upGrad in Zusammenarbeit mit der University of Arizona an und erhalten Sie die Chance, neben einem starken Netzwerk von Alumni von Branchenexperten zu lernen, die Ihnen während Ihrer gesamten Karriere helfen werden.

Was sind die vier Konzepte von OOPS?

Die vier Kernkonzepte von OOPS sind Abstraktion, Kapselung, Vererbung und Polymorphismus.

Wie unterscheiden sich Klassen und Objekte?

Klassen sind die Blaupausen der zu modellierenden Phänomene. Objekte hingegen sind bestimmte Instanzen von Klassen, die Verhalten und Attribute von der Klasse ausleihen, von der sie instanziiert wurden.

In welcher Sprache funktioniert OOPS?

OOPS ist eine sprachneutrale Programmierphilosophie. Sie können mit jeder modernen Programmiersprache wie C++, Java, Python, Ruby usw. an OOPS arbeiten.