Im Artikel „From Hello World to Object-Oriented“ im Basic Java Tutorial haben wir ein vorläufiges Verständnis von Objekten. Datenelemente in einem Objekt repräsentieren den Zustand des Objekts. Objekte können Methoden ausführen, die bestimmte Aktionen darstellen.
Darüber hinaus haben wir auch etwas über den Unterricht gelernt. Objekte derselben Klasse gehören zum selben Typ. Wir können Klassen definieren und diese Definition verwenden, um Objekte zu erstellen.
Lassen Sie uns tiefer in Objekte eintauchen. Erfahren Sie einige Details zu Methoden und Datenmembern in Java.
Aufrufen von Datenmembern desselben Objekts
Methoden können die Datenelemente des Objekts aufrufen. Im Folgenden fügen wir beispielsweise der Human-Klasse eine getHeight()-Methode hinzu. Diese Methode gibt den Wert des Höhendatenelements zurück:
Kopieren Sie den Codecode wie folgt:
Öffentlicher Klassentest
{
public static void main(String[] args)
{
Human aPerson = new Human();
System.out.println(aPerson.getHeight());
}
}
KlasseMensch
{/**
*Accessor
*/
int getHeight()
{
return this.height;
}
int Höhe;
}
Wir haben die getHeight-Methode hinzugefügt. Diese Methode hat einen Rückgabewert vom Typ int. Return wird in Java verwendet, um einen Wert zurückzugeben.
Beachten Sie dies, da hiermit auf das Objekt selbst verwiesen wird. Wenn wir eine aPerson-Instanz erstellen, stellt diese das aPerson-Objekt dar. this.height bezieht sich auf die Größe einer Person.
Das ist ein implizites Argument. Wenn eine Methode aufgerufen wird, übergibt Java diesen Parameter „stillschweigend“ an die Methode, auch wenn die Parameterliste der Methode dies nicht enthält.
(Es gibt einige spezielle Methoden, die dies nicht implizit übergeben, wir werden es später sehen)
Dies ist nicht erforderlich. Die obige Methode kann wie folgt geschrieben werden:
Kopieren Sie den Codecode wie folgt:
/**
*Accessor
*/
int getHeight()
{
Rückkehrhöhe;
}
Java bestimmt selbst, dass height ein Datenelement in der Klasse ist. Aber es wird klarer, wenn man dies verwendet.
Wir haben auch die Methode /** comments */ zum Hinzufügen von Kommentaren gesehen.
Methodenparameterliste
Methodendefinitionen in Java ähneln Funktionen in der Sprache C. Java-Methoden können auch eine Argumentliste (Argument List) in Klammern nach dem Methodennamen erhalten. Als nächstes definieren wir eine Methode „growHeight()“. Die Funktion dieser Methode besteht darin, die Körpergröße einer Person zu erhöhen:
Kopieren Sie den Codecode wie folgt:
Öffentlicher Klassentest
{
public static void main(String[] args)
{
Human aPerson = new Human();
System.out.println(aPerson.getHeight());
aPerson.growHeight(10);
System.out.println(aPerson.getHeight());
}
}
KlasseMensch
{
/**
*Accessor
*/
int getHeight()
{
return this.height;
}
/**
* Argument übergeben
*/
void wachsenHeight(int h)
{
this.height = this.height + h;
}
int Höhe;
}
In growHeight() ist h der übergebene Parameter. In der Klassendefinition wird der Typ des Parameters (int) angegeben. Innerhalb einer bestimmten Methode können wir diesen Parameter verwenden. Dieser Parameter ist nur im Rahmen dieser Methode gültig, also wachsenHeight().
Beim Aufruf übergeben wir 10 an growHeight(). Die Körpergröße einer Person wird um 10 erhöht.
Rufen Sie andere Methoden für dasselbe Objekt auf
Innerhalb einer Methode können andere Methoden desselben Objekts aufgerufen werden. Verwenden Sie beim Aufruf die Form this.method(). Wir erinnern uns auch daran, dass sich dies auf das Objekt bezieht. This.method() bezieht sich also auf die method()-Methode des Objekts selbst.
Zum Beispiel die folgende Funktion „repeatBreath()“:
Kopieren Sie den Codecode wie folgt:
Öffentlicher Klassentest
{
public static void main(String[] args)
{
Human aPerson = new Human();
aPerson.repeatBreath(10);
}
}
KlasseMensch
{
leerer Atem()
{
System.out.println("hu...hu...");
}
/**
*atem() aufrufen
*/
void repeatBreath(int rep)
{
int i;
for(i = 0; i < rep; i++) {
this.breath();
}
}
int Höhe;
}
Um die Schleife zu erleichtern, deklarieren wir in der Methode „repeatBreath()“ ein Objekt i vom Typ int. Der Umfang von i ist auf den Umfang der Methode „repeatBreath()“ beschränkt.
(Dies ähnelt automatischen Variablen in C-Sprachfunktionen)
Initialisierung des Datenelements
In Java gibt es viele Möglichkeiten, Datenelemente zu initialisieren. Beispielsweise wählt Java im obigen getHeight()-Beispiel einen Standardanfangswert von 0, obwohl wir nie einen Wert für die Höhe angeben.
Standardanfangswerte für Datenelemente des Basistyps:
1. Numerischer Typ: 0
2.Boolescher Wert: falsch
3. Andere Typen: null
Wir können den Anfangswert des Datenelements bei der Deklaration angeben. Dies wird als explizite Initialisierung bezeichnet. Der Anzeigeinitialisierungswert muss im Programm fest geschrieben werden:
Kopieren Sie den Codecode wie folgt:
Öffentlicher Klassentest
{
public static void main(String[] args)
{
Human aPerson = new Human();
System.out.println(aPerson.getHeight());
}
}
KlasseMensch
{/**
*Accessor
*/
int getHeight()
{
return this.height;
}
int-Höhe = 175;
}
Hier beträgt der Anfangswert der Datenelementhöhe 175, nicht der Standardwert 0.
Es gibt andere Möglichkeiten, Objekte in Java zu initialisieren, die ich später vorstellen werde.
Zusammenfassen
zurückkehren
this, this.field, this.method()
Standardanfangswert, explizite Initialisierung