Was ist Java objektorientiert?
Java objektorientiert im Detail
Vorwort: Ich beschäftige mich schon lange mit der Projektentwicklung, und vor kurzem kam mir die Idee, zurückzugehen und zu schreiben über das Grundwissen, das ich zuvor gelernt habe. Zuerst habe ich gerade angefangen, das Programmieren zu lernen, und als ich anfing zu lernen, verstand ich viele Dinge nicht. Später, nachdem ich mehr geübt hatte, wurden mir einige Dinge nach und nach klar Üben Sie, nur wenn Sie zurückgehen und einige grundlegende Dinge lernen, können Sie es gründlicher verstehen. Drittens sind einige Dinge grundlegend, aber sehr wichtig, und es lohnt sich, sie gut zu machen.
1. Objektorientiert
Objektorientiert ist eine aufstrebende Programmiermethode, oder Ein neues Programmierparadigma (Paradigma). Die Grundidee besteht darin, grundlegende Konzepte wie Objekte, Klassen, Vererbung, Kapselung und Polymorphismus zum Entwerfen von Programmen zu verwenden. Konstruieren Sie Softwaresysteme auf der Grundlage objektiv existierender Dinge (d. h. Objekte) in der realen Welt und nutzen Sie bei der Systemkonstruktion so weit wie möglich das natürliche Denken des Menschen.
2. Objekt
Ein Objekt ist ein System, das zur Beschreibung objektiver Dinge verwendet wird ist eine Grundeinheit des Systems. Ein Objekt besteht aus einer Reihe von Eigenschaften und einer Reihe von Diensten, die mit der Reihe von Eigenschaften arbeiten.
Durch die Instanziierung einer Klasse können Objekte generiert werden. Der Lebenszyklus eines Objekts umfasst drei Phasen: Generierung, Verwendung und Eliminierung.
Wenn es keinen Verweis auf ein Objekt gibt, wird das Objekt zu einem nutzlosen Objekt. Der Garbage Collector von Java scannt automatisch den dynamischen Speicherbereich von Objekten, sammelt nicht referenzierte Objekte und gibt sie als Müll frei. Wenn dem System der Speicher ausgeht oder System.gc() aufruft, um eine Garbage Collection anzufordern, wird der Garbage Collection-Thread synchron mit dem System ausgeführt.
3. Klasse
Eine Klasse ist eine Gruppe von Objekten mit gleichen Eigenschaften und Methoden Eine Sammlung, die eine einheitliche abstrakte Beschreibung für alle zur Klasse gehörenden Objekte bereitstellt, die zwei Hauptteile umfasst: Attribute und Methoden. In objektorientierten Programmiersprachen ist eine Klasse eine unabhängige Programmeinheit. Sie sollte einen Klassennamen haben und zwei Hauptteile enthalten: Attribute und Methoden.
Die Klassenimplementierung in Java umfasst zwei Teile: Klassendeklaration und Klassenkörper.
Klassendeklaration
[public][abstract|final] class className [extends superclassName] [implements interfaceNameList]{……}
Darunter die Modifikatoren public, abstract und final erklärt Attribute der Klasse, className ist der Klassenname, superclassName ist der Name der übergeordneten Klasse der Klasse und interfaceNameList ist die Liste der von der Klasse implementierten Schnittstellen.
Klassenkörper
class className{ [public | protected | private ] [static] [final] [transient] [volatile] type variableName;//成员变量 [public | protected | private ] [static] [final | abstract] [native] [synchronized] returnType methodName([paramList]) [throws exceptionList]{ statements }//成员方法 }
Die Bedeutung des Mitgliedsvariablen-Qualifizierers:
▶ statisch: statische Variablen (Klassenvariablen)
▶ final: Konstante; transient: temporäre Variable, die zur Objektarchivierung und Serialisierung von Objekten verwendet wird
▶ volatile: Beitragsvariablen zum Teilen durch gleichzeitige Threads
Die Implementierung der Methode umfasst auch zwei Teile: Methodendeklaration und Methodenkörper.
Methodendeklaration
Die Bedeutung von Qualifizierern in der Methodendeklaration:
▶ statisch: Klassenmethode, die direkt über den Klassennamen aufgerufen werden kann
▶ abstrakt: abstrakte Methode, kein Methodenkörper
▶ final: Methoden können nicht überschrieben werden
▶ native: Code aus anderen Sprachen integrieren
▶ synchronisiert: Zugriff durch mehrere gleichzeitige Threads steuern
Die Methodendeklaration umfasst den Methodennamen, den Rückgabetyp und externe Parameter. Der Typ der Parameter kann ein einfacher Datentyp oder ein zusammengesetzter Datentyp (auch als Referenzdatentyp bezeichnet) sein.
Für einfache Datentypen implementiert Java die Wertübertragung. Die Methode empfängt den Wert des Parameters, kann den Wert dieser Parameter jedoch nicht ändern. Wenn Sie den Wert eines Parameters ändern möchten, verwenden Sie einen Referenzdatentyp, da der Referenzdatentyp die Adresse der Daten im Speicher an die Methode übergibt und die Operation an den Daten in der Methode den Wert der Daten ändern kann .
Methodenkörper
Der Methodenkörper ist die Implementierung der Methode, die die Deklaration lokaler Variablen und umfasst alle rechtlichen Java-Anweisungen. Der Bereich der im Methodenkörper deklarierten lokalen Variablen liegt innerhalb der Methode. Wenn die lokale Variable denselben Namen wie eine Mitgliedsvariable der Klasse hat, wird die Mitgliedsvariable der Klasse ausgeblendet.
Um Parameter von Klassenmitgliedsvariablen zu unterscheiden, müssen wir dies verwenden. Dies wird in einer Methode verwendet, um auf das aktuelle Objekt zu verweisen, und sein Wert ist das Objekt, das die Methode aufgerufen hat. Der Rückgabewert muss mit dem Rückgabetyp konsistent oder genau gleich oder einer Unterklasse davon sein. Wenn der Rückgabetyp eine Schnittstelle ist, muss der Rückgabewert die Schnittstelle implementieren.
Konstruktormethode
▶Die Konstruktormethode ist eine spezielle Methode. Jede Klasse in Java verfügt über eine Konstruktormethode, die ein Objekt dieser Klasse initialisiert.
▶ Der Konstruktor hat den gleichen Namen wie der Klassenname und gibt keinen Datentyp zurück.
▶ Überladung wird häufig in Konstruktoren verwendet.
▶ Der Konstruktor kann nur vom neuen Operator aufgerufen werden
4. Grundlegende objektorientierte Funktionen
Kapselung
Kapselung besteht darin, die internen Details des Objekts so weit wie möglich zu verbergen und Für die Interaktion mit der Außenwelt sind nur begrenzte Schnittstellen und Methoden reserviert. Das Prinzip der Kapselung besteht darin, zu verhindern, dass andere Teile als das Objekt nach Belieben auf die internen Eigenschaften des Objekts zugreifen und diese manipulieren, und so zu verhindern, dass die Außenwelt die internen Eigenschaften des Objekts beschädigt.
Sie können die Informationen von Mitgliedern einer Klasse ausblenden, indem Sie bestimmte Zugriffsrechte für die Mitglieder der Klasse festlegen.
▶ privat: Auf Mitglieder einer Klasse, die auf privat beschränkt sind, kann nur die Klasse selbst zugreifen. Wenn der Konstruktor einer Klasse als privat deklariert ist, können andere Klassen keine Instanz der Klasse generieren.
▶ Standard: Mitglieder einer Klasse ohne Zugriffsberechtigungsbeschränkungen gehören zum Standardzugriffsstatus (Standard) und können von der Klasse selbst und Klassen im selben Paket aufgerufen werden.
▶ protected: Mitglieder einer Klasse, die auf protected beschränkt sind, können durch die Klasse selbst, ihre Unterklassen (einschließlich Unterklassen im selben Paket und verschiedenen Paketen) und durch denselben Zugriff geschützt werden alle anderen Klassen im Paket.
▶ öffentlich: Auf Mitglieder einer Klasse, die auf öffentlich beschränkt sind, können alle Klassen zugreifen.
Geerbt
Das Objekt der Unterklasse hat alle Attribute von Die übergeordnete Klasse und die Methoden werden als Vererbung der übergeordneten Klasse durch die Unterklasse bezeichnet.
▶ In Java kann eine übergeordnete Klasse mehrere Unterklassen haben, eine Unterklasse kann jedoch nur eine übergeordnete Klasse erben, was als Einzelvererbung bezeichnet wird.
▶ Vererbung ermöglicht die Wiederverwendung von Code.
▶ Alle Klassen in Java werden durch direktes oder indirektes Erben der Klasse java.lang.Object erhalten.
▶ Unterklassen können keine Mitgliedsvariablen und Methoden mit privaten Zugriffsrechten in der übergeordneten Klasse erben.
▶ Unterklassen können die Methoden der übergeordneten Klasse überschreiben, d. h. Mitgliedsvariablen mit demselben Namen wie die übergeordnete Klasse benennen.
In Java wird der Zugriff auf übergeordnete Klassenmitglieder über super erreicht, und super wird verwendet, um auf die übergeordnete Klasse des aktuellen Objekts zu verweisen. Es gibt drei Situationen, in denen super verwendet wird:
▶ Greifen Sie auf die ausgeblendeten Mitgliedsvariablen der übergeordneten Klasse zu, z. B.: super.variable; >▶ Rufen Sie die überschriebenen übergeordneten Methoden in der Klasse auf, z. B.: super.Method([paramlist]), super() ruft den Konstruktor der übergeordneten Klasse auf
▶ ruft den Konstruktor der übergeordneten Klasse auf , wie zum Beispiel: super([paramlist]);
Polymorphismus
Polymorphismus eines Objekts bedeutet, dass die in der übergeordneten Klasse definierten Attribute oder Methoden von der Unterklasse geerbt werden können Sie können unterschiedliche Eigenschaften des Datentyps aufweisen oder ein unterschiedliches Verhalten aufweisen. Dadurch kann dieselbe Eigenschaft oder Methode in der übergeordneten Klasse und ihren verschiedenen Unterklassen unterschiedliche Semantiken haben. Beispiel: Die Methoden „Zeichnen“ von „Geometriefigur“, „Ellipse“ und „Polygon“ sind beide Unterklassen von „Geometriefigur“ und ihre Methodenfunktionen „Zeichnen“ sind unterschiedlich.
Der Polymorphismus von Java spiegelt sich in zwei Aspekten wider: statischer Polymorphismus, der durch Methodenüberladung erreicht wird (Kompilierungszeit-Polymorphismus), und dynamischer Polymorphismus, der durch Methodenüberschreibung erreicht wird (Laufzeitpolymorphismus).
▶ Polymorphismus zur Kompilierungszeit: Während der Kompilierungsphase, welche überladene Methode aufgerufen wird, bestimmt der Compiler statisch die entsprechende aufzurufende Methode basierend auf den verschiedenen Parametern.
▶ Laufzeitpolymorphismus: Da die Unterklasse alle Attribute der übergeordneten Klasse erbt (außer privaten), kann das Unterklassenobjekt als übergeordnetes Klassenobjekt verwendet werden. Überall dort, wo im Programm ein übergeordnetes Klassenobjekt verwendet wird, kann stattdessen ein untergeordnetes Klassenobjekt verwendet werden. Ein Objekt kann Methoden einer Unterklasse aufrufen, indem es auf eine Instanz der Unterklasse verweist.
Überladung
▶Methodenüberladung ermöglicht es der Klasse, verschiedene Datentypen auf einheitliche Weise zu verarbeiten.
▶ In einer Klasse können mehrere Methoden erstellt werden, sie haben den gleichen Namen, aber unterschiedliche Parameter und unterschiedliche Definitionen. Beim Aufrufen von Methoden bestimmt die spezifische Anzahl und Art der an sie übergebenen Parameter, welche Methode verwendet werden soll.
▶ Die Rückgabewerttypen können gleich oder unterschiedlich sein. Der Rückgabetyp kann nicht als Kriterium zur Unterscheidung überladener Funktionen verwendet werden.
Überschreiben
▶ Die Unterklasse schreibt die Methode der übergeordneten Klasse neu. Wenn eine Methode in einer Unterklasse denselben Methodennamen, denselben Rückgabetyp und dieselbe Parameterliste wie ihre übergeordnete Klasse hat, sprechen wir von einer überschreibenden Methode.
▶ Wenn Sie die ursprüngliche Methode in der übergeordneten Klasse benötigen, können Sie das Schlüsselwort super verwenden, das sich auf die übergeordnete Klasse der aktuellen Klasse bezieht.
▶ Die Zugriffsänderungsberechtigungen von Unterklassenfunktionen dürfen nicht niedriger sein als die der übergeordneten Klasse.
Das obige ist der detaillierte Inhalt vonWas ist Java objektorientiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!