Heim  >  Artikel  >  Java  >  Umfassendes Verständnis von Java-Klassen und -Objekten

Umfassendes Verständnis von Java-Klassen und -Objekten

高洛峰
高洛峰Original
2017-01-20 17:47:101124Durchsuche

Objektorientierte Programme bestehen aus Objekten, und jedes Objekt enthält spezifische Funktionsteile, die Benutzern zugänglich gemacht werden, und versteckte Implementierungsteile. Bei der objektorientierten Programmierung (OOP) müssen Sie sich nicht um die spezifische Implementierung des Objekts kümmern. Bei der herkömmlichen strukturierten Programmierung steht der Algorithmus an erster Stelle und die Datenstruktur an zweiter Stelle. Das heißt, zunächst wird festgelegt, wie die Zahlen operiert werden, und dann wird darüber nachgedacht, wie die Daten organisiert werden, um den Betrieb zu erleichtern. OOP kehrt diese Reihenfolge um, stellt die Daten an die erste Stelle und berücksichtigt dann den Algorithmus zum Bearbeiten der Daten.

1. Klassen

Klassen sind Vorlagen und Blaupausen zum Konstruieren von Objekten. Laienhaft ausgedrückt entsprechen Klassen Architekturzeichnungen und Objekte Gebäuden. Der Prozess des Konstruierens eines Objekts aus einer Klasse wird als Erstellen einer Instanz des Objekts bezeichnet.

In Java wird „Klasse“ durch das Schlüsselwort „class“ definiert, gefolgt vom Klassennamen. Beispiel:

class Person{
  // 类的主体内容
}

definiert eine Person-Klasse.

1. Felder und Methoden

Beim Definieren einer Klasse können Sie zwei Arten von Elementen in der Klasse festlegen: Datenmitglieder und Mitgliedsfunktionen. Das Datenelement ist ein Objekt und kann einen beliebigen Typ haben. Wenn es sich um ein Handle handelt, das auf ein Objekt zeigt, muss das Handle initialisiert und über den Konstruktor mit einem tatsächlichen Objekt verbunden werden. Wenn es sich um einen Basisdatentyp handelt, kann er direkt dort initialisiert werden, wo die Klasse definiert ist.

Jedes Objekt verwaltet Speicherplatz für seine eigenen Datenelemente; Datenelemente werden nicht von Objekten gemeinsam genutzt.

class Person{
  String name;
  double salary;
}


Erstellen Sie ein Objekt mit dem neuen Schlüsselwort. Zum Beispiel:

Person p = new Person();


(1) Der Standardwert des Hauptmitglieds

Ein bestimmter Hauptdatentyp gehört zu einem Klassenmitglied und dann dazu Wird nicht explizit ausgeführt, sorgt die Initialisierung auch dafür, dass sie einen Standardwert erhalten.

Umfassendes Verständnis von Java-Klassen und -Objekten

Wenn eine Variable als Mitgliedsvariable einer Klasse verwendet wird, wird der Haupttyp auf jeden Fall initialisiert. Achten Sie besonders auf den initialisierten Wert. Für lokale Variablen werden einige Zufallswerte abgerufen, z. B.: int x; wird nicht automatisch auf 0 initialisiert.

(2) Methode

Zu den Grundkomponenten einer Methode gehören Name, Argumente, Rückgabetyp und Text. Die Grundform der Methode ist:

Methodenname des Rückgabetyps (/*Argumentliste*/) {/*Methodenkörper*/}

Der Rückgabetyp bezieht sich auf die Rückgabe nach Aufruf der Methode numerischer Typ. Der Methodenname ist eine Identifikation und Referenz auf eine bestimmte Methode. Die Argumentliste listet den Typ und Namen der Informationen auf, die Sie an die Methode übergeben möchten.

Die Aufrufform einer Methode in Java ist der Objektname. Methodenname

1. Verwenden Sie Handles, um Objekte zu bedienen.

Obwohl Java vollständig objektorientiert ist. Der Bezeichner der Operation verweist jedoch tatsächlich auf ein „Handle“ eines Objekts, das auch als „Referenz“ bezeichnet wird. Handles können unabhängig voneinander existieren. Dies bedeutet nicht, dass einem Handle ein entsprechendes Objekt zugeordnet sein muss. Beispielsweise definiert int i; eine ganzzahlige Variable i, aber das bedeutet nicht, dass sie einen Wert haben muss. Erstellen Sie beispielsweise ein Handle vom Typ String:

String s;


Hier wird nur das Handle und kein Objekt erstellt. Da s kein Objekt zugeordnet ist, tritt beim Aufruf von s eine Ausnahme auf. Daher ist beim Erstellen eine Initialisierung erforderlich.

String s = "hello";


In Java wird ein Objekt über das Schlüsselwort new erstellt, das einen Verweis (d. h. Handle) auf das Objekt zurückgibt.

String s = new String("hello");


erstellt also ein String-Objekt mit dem Inhalt „hello“ und übergibt das Handle (Referenz) des Objekts an s zur Speicherung.

2. Ort der Datenspeicherung

1. Der schnellste Speicherbereich befindet sich im Prozessor. Die Größe der Register ist begrenzt und wird vom Compiler zugewiesen.

2. Stapel. Befindet sich in einem regulären RAM-Bereich (Random Access Memory) und kann über den „Stapelzeiger“ in der Größe geändert werden. Wenn Sie den Stapelzeiger nach unten bewegen, wird neuer Speicherplatz geschaffen. Wenn Sie ihn nach oben bewegen, wird Speicherplatz freigegeben. Beim Erstellen eines Programms muss der Java-Compiler die „Länge“ und das „Alter“ aller auf dem Stapel gespeicherten Daten genau kennen, aus denen der Compiler den entsprechenden Code zum Bewegen des Zeigers generiert. Das Handle des Java-Objekts wird darin gespeichert, das Java-Objekt wird jedoch nicht auf dem Stapel gespeichert.

3. Ein Allzweck-Speicherpool, der Java-Objekte enthält. Der Compiler weiß oder muss nicht wissen, wie viel Speicherplatz vom „Speicherheap“ oder „Heap“ zugewiesen wird und wie lange die Daten aufbewahrt werden.

4. Statische Speicherung. Statisch bedeutet, dass es sich an einem festen Ort (im RAM) befindet. Während das Programm läuft, stehen die statisch gespeicherten Daten jederzeit zum Abruf zur Verfügung. Das Schlüsselwort static gibt an, dass ein bestimmtes Element eines Objekts statisch ist. Java selbst kann nicht im statischen Speicherplatz abgelegt werden.

5. Ständige Lagerung. Konstante Werte werden normalerweise im Programmcode platziert und ändern sich nie.

6. Nicht-RAM-Speicher. Wenn die Daten völlig unabhängig von einem Programm sind, können sie vorhanden sein, wenn das Programm nicht ausgeführt wird, und unterliegen der Kontrolle des Programms. Zum Beispiel Streaming-Objekte und feste Objekte.

2. Objekte

Drei Hauptmerkmale von Objekten:

• Verhalten von Objekten – welche Operationen können auf das Objekt angewendet werden oder welche Methoden können auf das Objekt angewendet werden ?

• Der Zustand des Objekts – wie reagiert das Objekt, wenn diese Methoden hinzugefügt werden?

•Objektidentifizierung – Wie kann man verschiedene Objekte mit demselben Verhalten und Status identifizieren?

Das Verhalten eines Objekts wird durch aufrufbare Methoden definiert. Jedes Objekt speichert Informationen, die seine aktuellen Eigenschaften beschreiben. Dies ist der Zustand des Objekts. Der Zustand des Objekts ändert sich nicht spontan. Bei einer gut gestalteten Klasse können ihre Objekte nur durch Aufrufen von Methoden implementiert werden. Wenn der Status des Objekts ohne Aufrufen von Methoden geändert werden kann, bedeutet dies, dass die Kapselung beschädigt ist.

Kapselung: kombiniert Daten und Verhalten in einem Paket und verbirgt die Datenimplementierungsmethode vor Benutzern des Objekts. Der Schlüssel zur Kapselung besteht darin, dass Methoden in einer Klasse nicht direkt auf Instanzfelder anderer Klassen zugreifen dürfen. Programme interagieren nur mit Objektdaten über das Methodenfeld des Objekts.

Die Daten im Objekt werden Instanzfeld oder Attribut genannt. Der Prozess der Datenbearbeitung wird als Methode bezeichnet. Für jedes spezifische Objekt gibt es einen bestimmten Satz von Instanzfeldwerten (Eigenschaftswerten), und der Satz dieser Werte ist der aktuelle Status des Objekts.

Beziehungen zwischen Klassen

Gemeinsame Beziehungen zwischen Klassen:

• Abhängigkeit („use-a“): Eine Methode einer Klasse manipuliert ein Objekt einer anderen Klasse.

•Aggregation („hat-a“): Objekte einer Klasse enthalten Objekte einer anderen Klasse.

•Vererbung („is-a“): wird verwendet, um die Beziehung zwischen Besonderem und Allgemeinem auszudrücken. Wenn Klasse A Klasse B erweitert (A erbt B), enthält Klasse A nicht nur die Methoden von Klasse B, sondern erweitert auch Methoden.

Ein Objekt enthält eigentlich kein Objekt, sondern verweist nur auf ein Objekt.

In Java ist der Wert einer beliebigen Objektvariablen ein Verweis auf ein Objekt, das an einem anderen Ort gespeichert ist. Der Rückgabewert des neuen Operators ist ebenfalls eine Referenz.

Das obige umfassende Verständnis von Java-Klassen und -Objekten ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann, und ich hoffe, dass Sie die chinesische PHP-Website unterstützen.

Weitere Artikel zu einem umfassenden Verständnis von Java-Klassen und -Objekten finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn