Welcome to Our Website

OOPs-Konzepte in Java

Object-Oriented Programming System (OOPs) ist ein Programmierparadigma, das auf dem Konzept der „Objekte“ basiert, die Daten und Methoden enthalten. Der Hauptzweck der objektorientierten Programmierung besteht darin, die Flexibilität und Wartbarkeit von Programmen zu erhöhen. Objektorientierte Programmierung vereint Daten und ihr Verhalten (Methoden) an einem einzigen Ort(Objekt) erleichtert das Verständnis der Funktionsweise eines Programms. Wir werden jedes Merkmal von OOPs im Detail behandeln, damit Sie keine schwer verständlichen OOPs-Konzepte haben.,

OOPs Concepts – Inhaltsverzeichnis

  1. Was ist ein Objekt
  2. Was ist eine Klasse
  3. Konstruktor in Java
  4. Objektorientierte Programmierfunktionen
    • Abstraktion
    • Kapselung
    • Vererbung
    • Polymorphismus
  5. Abstrakte Klasse und Methoden
  6. Schnittstellen in Java
  7. /li>

Was ist ein Objekt


Objekt: ist ein Bündel von Daten und ihr Verhalten(oft als Methoden bekannt).

Objekte haben zwei Eigenschaften: Sie haben Zustände und Verhaltensweisen.,

Beispiele für Zustände und Verhaltensweisen
Beispiel 1:
Objekt: Haus
Zustand: Adresse, Farbe, Bereich
Verhalten: Tür öffnen, Tür schließen

Wenn ich also eine Klasse schreiben müsste, die auf Zuständen und Verhaltensweisen von Haus basiert. Ich kann es so machen: Zustände können als Instanzvariablen und Verhaltensweisen als Methoden der Klasse dargestellt werden. Im nächsten Abschnitt dieses Handbuchs erfahren Sie, wie Sie Klassen erstellen.

class House { String address; String color; double are; void openDoor() { //Write code here } void closeDoor() { //Write code here } ... ...}

Hinweis: Wie wir oben gesehen haben, können die Zustände und Verhaltensweisen eines Objekts durch Variablen bzw.,

Eigenschaften von Objekten:

Wenn es Ihnen schwer fällt, Abstraktion und Kapselung zu verstehen, machen Sie sich keine Sorgen, da ich diese Themen im nächsten Abschnitt dieses Handbuchs ausführlich mit Beispielen behandelt habe.

  1. Abstraktion
  2. Kapselung
  3. Nachrichtenübergabe

Abstraktion: Abstraktion ist ein Prozess, bei dem Sie nur „relevante“ Daten anzeigen und unnötige Details eines Objekts vor dem Benutzer „ausblenden“.

Kapselung: Kapselung bedeutet einfach, Objektstatus(Felder) und Verhalten(Methoden) zusammen zu binden. Wenn Sie eine Klasse erstellen, führen Sie eine Kapselung durch.,

Message-passing –
Ein einzelnes Objekt selbst kann nicht sehr nützlich sein. Eine Anwendung enthält viele Objekte. Ein Objekt interagiert mit einem anderen Objekt, indem es Methoden für dieses Objekt aufruft. Es wird auch als Methodenaufruf bezeichnet. Siehe das Diagramm unten.

Was ist eine Klasse in OOPs Concepts

Eine Klasse kann als Blaupause betrachtet werden, mit der Sie beliebig viele Objekte erstellen können. Hier haben wir beispielsweise eine Klasse Website mit zwei Datenelementen (auch Felder, Instanzvariablen und Objektzustände genannt)., Dies ist nur eine Blaupause, es stellt keine Website dar, aber mit dieser können wir Website-Objekte (oder Instanzen) erstellen, die die Websites darstellen. Wir haben zwei Objekte erstellt, beim Erstellen von Objekten haben wir den Objekten mithilfe des Konstruktors separate Eigenschaften bereitgestellt.

Ausgabe:

beginnersbook 5google 18

Was ist ein Konstruktor

Konstruktor sieht aus wie eine Methode, ist aber in der Tat keine Methode. Der Name ist derselbe wie der Klassenname und gibt keinen Wert zurück., Sie müssen diese Anweisung in fast allen Programmen gesehen haben, die ich oben geteilt habe:

MyClass obj = new MyClass();

Wenn Sie sich die rechte Seite dieser Anweisung ansehen, rufen wir den Standardkonstruktor der Klasse auf myClass um ein neues Objekt (oder eine neue Instanz) zu erstellen.

Wir können auch Parameter im Konstruktor haben, solche Konstruktoren werden als parametrisierte Konstruktoren bezeichnet.,

Beispiel für Konstruktor

Ausgabe:

Chaitanya 30Steve 56

Objektorientierte Programmierfunktionen


Diese vier Funktionen sind die wichtigsten OOPs-Konzepte, die Sie lernen müssen, um die objektorientierte Programmierung in Java zu verstehen

Abstraktion

Abstraktion ist ein Prozess, bei dem Sie nur „relevante“ daten und „verstecken“ unnötige Details eines Objekts vor dem Benutzer., Wenn Sie sich beispielsweise online bei Ihrem Bankkonto anmelden, geben Sie Ihre user_id und Ihr Passwort ein und drücken login, was passiert, wenn Sie Login drücken, wie die an den Server gesendeten Eingabedaten und wie sie überprüft werden, werden alle von Ihnen abstrahiert. Lesen Sie hier mehr darüber: Abstraktion in Java.

Kapselung

Kapselung bedeutet einfach, Objektstatus(Felder) und Verhalten(Methoden) zusammen zu binden. Wenn Sie eine Klasse erstellen, führen Sie eine Kapselung durch.,

Kapselungsbeispiel in Java

Wie
1) Machen Sie die Instanzvariablen privat, so dass sie nicht direkt von außerhalb der Klasse zugegriffen werden kann. Sie können Werte dieser Variablen nur über die Methoden der Klasse festlegen und abrufen.
2) Habe Getter-und Setter-Methoden in der Klasse, um die Werte der Felder festzulegen und abzurufen.

Ausgabe:

Die Klasse EncapsulationExample, die das Objekt der Klasse EmployeeCount verwendet, kann die NoOfEmployees nicht direkt abrufen., Es muss die Setter-und Getter-Methoden derselben Klasse verwenden, um den Wert festzulegen und abzurufen.
Also, was ist der Vorteil der Kapselung in der Java-Programmierung
Nun, zu einem bestimmten Zeitpunkt, wenn Sie die Implementierungsdetails der Klasse EmployeeCount ändern möchten, können Sie dies frei tun, ohne die Klassen zu beeinflussen, die es verwenden.

Vererbung

Der Prozess, mit dem eine Klasse die Eigenschaften und Funktionalitäten einer anderen Klasse erwirbt, wird Vererbung genannt., Vererbung bietet die Idee der Wiederverwendbarkeit von Code und jede Unterklasse definiert nur die Funktionen, die einzigartig sind, Rest der Funktionen können von der übergeordneten Klasse geerbt werden.

  1. Vererbung ist ein Prozess der Definition einer neuen Klasse basierend auf einer vorhandenen Klasse durch Erweiterung ihrer gemeinsamen Datenelemente und Methoden.
  2. Vererbung ermöglicht uns die Wiederverwendung von Code, es verbessert die Wiederverwendbarkeit in Ihrer Java-Anwendung.
  3. Die übergeordnete Klasse wird als Basisklasse oder Superklasse bezeichnet. Die untergeordnete Klasse, die die Basisklasse erweitert, wird als abgeleitete Klasse oder Unterklasse oder untergeordnete Klasse bezeichnet.,

Hinweis: Der größte Vorteil der Vererbung besteht darin, dass der Code in der Basisklasse nicht in der untergeordneten Klasse neu geschrieben werden muss.
Die Variablen und Methoden der Basisklasse können auch in der untergeordneten Klasse verwendet werden.

Syntax: Vererbung in Java

Um eine Klasse zu erben, verwenden wir das Schlüsselwort extends. Hier ist Klasse A eine untergeordnete Klasse und Klasse B eine übergeordnete Klasse.

class A extends B{}

Vererbungsbeispiel

In diesem Beispiel haben wir eine übergeordnete Klasse Teacher und eine untergeordnete Klasse MathTeacher., In derMathTeacher Klasse müssen wir nicht denselben Code schreiben, der bereits in der vorliegenden Klasse vorhanden ist. Hier haben wir den Namen, die Bezeichnung und die does () – Methode, die für alle Lehrer üblich ist, daher muss die MathTeacher-Klasse diesen Code nicht schreiben, die gemeinsamen Datenelemente und Methoden können von der Teacher – Klasse geerbt werden.,

Ausgabe:

BeginnersbookTeacherMathsTeaching

Hinweis: Mehrstufige Vererbung ist in Java erlaubt, aber nicht Mehrfachvererbung

Vererbungsarten:
Einzelvererbung: bezieht sich auf eine untergeordnete und übergeordnete Klassenbeziehung, in der eine Klasse die andere Klasse erweitert.

Mehrstufige Vererbung: Bezieht sich auf eine untergeordnete und übergeordnete Klassenbeziehung, in der eine Klasse die untergeordnete Klasse erweitert. Zum Beispiel erweitert Klasse A Klasse B und Klasse B erweitert Klasse C.,

Hierarchische Vererbung: Bezieht sich auf eine untergeordnete und übergeordnete Klassenbeziehung, bei der mehr als eine Klasse dieselbe Klasse erweitert. Zum Beispiel erweitert Klasse B Klasse A und Klasse C erweitert Klasse A.

Mehrfachvererbung: Bezieht sich auf das Konzept einer Klasse, die mehr als eine Klasse erweitert, was bedeutet, dass eine untergeordnete Klasse zwei übergeordnete Klassen hat. Java unterstützt keine Mehrfachvererbung, lesen Sie hier mehr darüber.

Die meisten neuen OO-Sprachen wie Small Talk, Java, C# unterstützen keine Mehrfachvererbung. Mehrfachvererbung wird in C++unterstützt.,

Polymorphismus

Polymorphismus ist eine objektorientierte Programmierfunktion, mit der wir eine einzelne Aktion auf unterschiedliche Weise ausführen können. Nehmen wir zum Beispiel an, wir haben eine Klasse Animal, die eine Methode animalSound(), hier können wir diese Methode nicht implementieren, da wir nicht wissen, welche Tierklasse Animal Klasse erweitern würde., Also machen wir diese Methode so abstrakt:

public abstract class Animal{ ... public abstract void animalSound();}

Angenommen, wir haben zwei Tierklassen Dog und Lion, die Animal class. Wir können dort die Implementierungsdetails bereitstellen.

public class Lion extends Animal{... @Override public void animalSound(){ System.out.println("Roar"); }}

und

public class Dog extends Animal{... @Override public void animalSound(){ System.out.println("Woof"); }}

Wie Sie sehen, hatten wir zwar die gemeinsame Aktion für alle Unterklassen animalSound() aber es gab verschiedene Möglichkeiten, die gleiche Aktion auszuführen., Dies ist ein perfektes Beispiel für Polymorphismus (Funktion, mit der wir eine einzelne Aktion auf verschiedene Arten ausführen können).

Arten von Polymorphismus
1) Statischer Polymorphismus
2) Dynamischer Polymorphismus

Statischer Polymorphismus:

Polymorphismus, der während der Compilerzeit aufgelöst wird, wird als statischer Polymorphismus bezeichnet. Methodenüberladung kann als statisches Polymorphismus-Beispiel betrachtet werden.
Methodenüberladung: Dadurch können wir mehr als eine Methode mit demselben Namen in einer Klasse haben, die sich in der Signatur unterscheidet.,

Ausgabe:

aa 10

Wenn ich Methodensignatur sage, spreche ich nicht über den Rückgabetyp der Methode, zum Beispiel, wenn zwei Methoden denselben Namen, dieselben Parameter und einen anderen Rückgabetyp haben. Dies wird Kompilierungsfehler auslösen.

Dynamischer Polymorphismus

Es wird auch als dynamischer Methodenversand bezeichnet. Dynamischer Polymorphismus ist ein Prozess, bei dem ein Aufruf einer überschriebenen Methode zur Laufzeit aufgelöst wird, weshalb er Laufzeitpolymorphismus genannt wird.,

Beispiel

Ausgabe:

Woof

Da sowohl die Klassen als auch die untergeordnete Klasse und die übergeordnete Klasse dieselbe Methode haben animalSound. Welche der Methoden aufgerufen wird, wird zur Laufzeit von JVM bestimmt.

Paar mehr überschreiben Beispiele:

IST EINE & – HAT-EIN-Beziehungen

Ein Auto IST EIN Fahrzeug und HAT-EINE Lizenz, dann würde der code wie folgt Aussehen:

public class Vehicle{ }public class Car extends Vehicle{ private License myCarLicense;}

Abstrakte Klassen und Methoden in OOPs-Konzepten

Abstrakte Methode:
1) Eine Methode, die deklariert, aber nicht definiert. Nur Methode Signatur kein Körper.,
2) Deklariert mit dem abstrakten Schlüsselwort
3) Beispiel:

abstract public void playInstrument();

5) Verwendet, um eine Art Zwang auf die Klasse zu setzen, die die Klasse erbt, hat abstrakte Methoden. Die Klasse, die erbt, muss die Implementierung aller abstrakten Methoden der übergeordneten Klasse bereitstellen und die Unterklasse als abstrakt deklarieren.
6) Dies können keine abstrakten

  • Konstruktoren
  • Statische Methoden
  • Private Methoden
  • Methoden sein, die als „endgültig“deklariert sind

Abstrakte Klasse
Eine abstrakte Klasse umreißt die Methoden, implementiert jedoch nicht unbedingt alle Methoden.,

abstract class A{ abstract void myMethod(); void anotherMethod(){ //Does something }}

Hinweis 1: Es kann einige Szenarien geben, in denen es schwierig ist, alle Methoden in der Basisklasse zu implementieren. In solchen Szenarien kann man die Basisklasse als abstrakte Klasse definieren, was bedeutet, dass diese Basisklasse eine spezielle Art von Klasse ist, die nicht vollständig ist.

Eine von der abstrakten Basisklasse abgeleitete Klasse muss die Methoden implementieren, die in der abstrakten Klasse nicht implementiert sind(dh abstrakt sind).

Hinweis 2: Die abstrakte Klasse kann nicht instanziiert werden, was bedeutet, dass Sie das Objekt der abstrakten Klasse nicht erstellen können., Um diese Klasse zu verwenden, müssen Sie eine andere Klasse erstellen, die diese abstrakte Klasse erweitert bietet die Implementierung von abstrakten Methoden, dann können Sie das Objekt dieser untergeordneten Klasse verwenden, um nicht-abstrakte übergeordnete Klasse Methoden sowie implementierte Methoden(diejenigen, die abstrakt waren in Eltern, aber in der untergeordneten Klasse implementiert).

Hinweis 3: Wenn ein Kind nicht alle abstrakten Methoden der übergeordneten Klasse(der abstrakten Klasse) implementiert, muss die untergeordnete Klasse als abstrakt deklariert werden.,

Beispiel für abstrakte Klasse und Methoden

Hier haben wir eine abstrakte Klasse Animal, die eine abstrakte Methode animalSound(), da sich der Tierton von Tier zu Tier unterscheidet, gibt es keinen Sinn, die Implementierung dieser Methode zu geben, da jede untergeordnete Klasse diese Methode überschreiben muss, um ihre eigenen Implementierungsdetails anzugeben. Deshalb haben wir es abstrakt gemacht.
Jetzt muss jedes Tier einen Ton haben, indem wir diese Methode abstrakt machen, haben wir es für die untergeordnete Klasse obligatorisch gemacht, dieser Methode Implementierungsdetails zu geben. Auf diese Weise stellen wir sicher, dass jedes Tier einen Klang hat.,

Ausgabe:

Woof

Schnittstellen in Java

Eine Schnittstelle ist eine Blaupause einer Klasse, die mit dem Schlüsselwort interface deklariert werden kann. Schnittstellen können nur Konstanten und abstrakte Methoden enthalten (Methoden mit nur Signaturen kein Körper).Wie abstrakte Klassen können Schnittstellen nicht instanziiert, sondern nur durch Klassen implementiert oder durch andere Schnittstellen erweitert werden. Schnittstelle ist ein gängiger Weg, um eine vollständige Abstraktion in Java zu erreichen.,

Hinweis:

  1. Java unterstützt keine Mehrfachvererbung, eine Klasse kann jedoch mehr als eine Schnittstelle implementieren
  2. Schnittstelle ähnelt einer abstrakten Klasse, enthält jedoch nur abstrakte Methoden.,
  3. Schnittstellen erstellt werden, durch die Verwendung von Schlüsselwort interface statt dem Schlüsselwort class
  4. Wir implements Stichwort bei der Implementierung einer Schnittstelle(ähnlich wie erweitern Sie eine Klasse mit dem Schlüsselwort extends)

Schnittstelle: Syntax

class ClassName extends Superclass implements Interface1, Interface2, ....

Beispiel der Schnittstelle:

Hinweis:

  1. Alle Methoden in einem interface sind implizit public und abstract. Die Verwendung des Schlüsselworts abstract vor jeder Methode ist optional.
  2. Eine Schnittstelle kann Endvariablen enthalten.,
  3. Eine Klasse kann nur eine andere Klasse erweitern, aber sie kann eine beliebige Anzahl von Schnittstellen implementieren.
  4. Wenn eine Klasse eine Schnittstelle implementiert, muss sie die Definition aller abstrakten Methoden der Schnittstelle angeben, andernfalls kann sie als abstrakte Klasse deklariert werden
  5. Eine Schnittstellenreferenz kann auf Objekte ihrer implementierenden Klassen verweisen.

Verallgemeinerung und Spezialisierung:
Um das Konzept der Vererbung in einem OOPs zu implementieren, muss man zuerst die Ähnlichkeiten zwischen verschiedenen Klassen identifizieren, um die Basisklasse zu finden.,

Dieser Prozess zur Identifizierung der Ähnlichkeiten zwischen verschiedenen Klassen wird als Verallgemeinerung bezeichnet. Verallgemeinerung ist der Prozess, bei dem gemeinsam genutzte Merkmale aus zwei oder mehr Klassen extrahiert und zu einer verallgemeinerten Oberklasse kombiniert werden. Gemeinsame Merkmale können Attribute oder Methoden sein.

Im Gegensatz zur Verallgemeinerung bedeutet Spezialisierung das Erstellen neuer Unterklassen aus einer vorhandenen Klasse. Wenn sich herausstellt, dass bestimmte Attribute oder Methoden nur für einige Objekte der Klasse gelten, kann eine Unterklasse erstellt werden.,

Zugriffsspezifizierer

Nun, Sie müssen das öffentliche, private Schlüsselwort in den Beispielen gesehen haben, die ich oben geteilt habe. Sie werden Zugriffsbezeichner genannt, wenn sie den Umfang eines Datenelements, einer Methode oder Klasse festlegen.

Es gibt vier Arten von access-Bezeichner in java:
public: für alle Zugänglich ist. Andere Objekte können auch auf diese Membervariable oder Funktion zugreifen.
privat: Nicht zugänglich durch andere Objekte. Auf private Mitglieder kann nur mit den Methoden derselben Klasse zugegriffen werden. Objekt zugänglich nur in der Klasse, in der sie deklariert sind.,
geschützt: Der Umfang einer geschützten Variablen ist innerhalb der Klasse, die sie deklariert und in der Klasse, die von der Klasse erbt (Umfang ist Klasse und Unterklasse).
Standard: Umfang ist Paketebene. Wir müssen den Standard nicht explizit erwähnen, da er als Standard betrachtet wird, wenn wir keinen Zugriffsspezifizierer erwähnen.,

Was werden wir in den nächsten Tutorials zu OOPs-Konzepten lernen

Obwohl wir hier fast alle OOPs-Konzepte behandelt haben, aber was auch immer wir in diesem Handbuch gelernt haben, ist kurz, Diese Themen sind breit und es gibt so viel Spielraum, um diese Themen anhand von Beispielen im Detail zu lernen. Deshalb habe ich jedes Thema zusammen mit Beispielen und Diagrammen in den nächsten Tutorials ausführlich behandelt.
Wie können Sie die nächsten Tutorials in einer sequentiellen Weise lesen? Es gibt einige Möglichkeiten, dies zu tun – 1) Tutorial-Links werden in der linken Seitenleiste bereitgestellt, gehen Sie sie in der angegebenen Reihenfolge durch.,
2) Gehen Sie auf die Haupt Java Tutorial-Seite, die alle Links zu den Tutorials in der sequentiellen Weise hat.
Wenn Sie finden jede Schwierigkeit zu verstehen, diese OOPs Konzepte dann schreiben Sie einen Kommentar unten und ich werde zurück zu Ihnen so bald wie möglich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.