Eine Klasse besteht im Grunde aus Feldern und Methoden. In Java werden Immobilien Felder genannt. Eine Methode ist eine Gruppe von Aussagen, die zusammen codiert werden, um eine Aufgabe zu erfüllen. Um eine Klasse in Java zu verwenden, muss die Klasse normalerweise in ein Objekt instanziiert werden. Eine Klasse ist eine allgemeine Einheit, aus der Objekte instanziiert werden können. Das Instanziieren (Erstellen) eines Objekts ist nicht wirklich eine große Sache. Es ist ein sehr kurzer Prozess, in dem die Felder der Klasse Werte erhalten. Objekte einer Klasse unterscheiden sich voneinander, weil sie unterschiedliche Werte für dieselben Feldnamen haben. Die Methoden aller Objekte und der Klasse sind gleich.
Eine statische Methode ist eine Methode, deren Implementierung (Definition) in einer Klassenimplementierung (Definition) mit dem reservierten Wort statisch beginnt. Eine statische Methode benötigt kein Objekt in einem anderen, damit es ausgeführt werden kann. Auf der anderen Seite benötigt eine nicht statische Methode ein Objekt in einem anderen, um es auszuführen. Siehe Details unten. In Java ruft eine nicht statische Methode aus, die die Methode ausführt. Eine statische Methode auszuführen ist, die Methode aufzurufen. Eine Konstruktormethode (einfach als Konstruktor bezeichnet) wird ebenfalls aufgerufen - siehe unten.
Dieser Artikel zeigt, wie Sie eine nicht statische Methode aufrufen und eine statische Methode aufrufen.
Klasse und seine Objekte
Betrachten Sie die folgende Klassenimplementierung:
Klasse aclassDer Name der Klasse ist Aclass. Es hat ein Feld, Str, das buchstäblich eine Zeichenfolge hält. Die Klasse hat zwei Methoden: die Konstruktormethode und eine Methode, die Leere zurückgibt. Die Konstruktormethode gibt nichts zurück und ihr Name ist der gleiche wie der der Klasse. Der Zweck der Konstruktormethode besteht darin, einige oder alle Felder mit Nicht-Default-Werten zu initialisieren. Dieser Konstruktor initialisiert das Feld STR mit dem Wert seines Parameters (gesendete Argument).
Die Interessenmethode in dieser Klasse heißt MTHD. Es kehrt ungültig zurück. Sein Körper druckt den Wert des Feldes der Klasse. Dieser Druck kann jedoch nur in diesem Fall erfolgen, wenn ein Objekt aus der Klasse instanziiert wurde. Und so ist es das Objekt, das den Druck in diesem Fall durch die gleiche entsprechende Methode ausführen würde.
Eine geeignete Hauptklasse für die obige Klasse lautet wie folgt:
öffentliche Klasse TheclassDie Hauptklasse hat die main () -Methode, die immer da sein sollte. In dieser Main () -Methode instanziiert die erste Anweisung ein Objekt, das als OBJ bezeichnet wird. Es verwendet den neuen Bediener, der neue und den Konstruktoramen, mit einem bestimmten Argument "gesehen", "gesehen". "Aclass (" gesehen ")" bedeutet, den Konstruktor aufzurufen. Damit wird die Konstruktor -Methode ausgeführt, um das Feld mit „Sehen“ zu initialisieren, mit „Sehen“. Andere Objekte, die aus derselben Klasse, ACLASS, instanziiert werden. Die zweite Aussage in der main () -Methode ruft die Methode MTHD () auf, die jetzt auf der Ausgabe druckt,
gesehenStatische Methode
Die folgende Klassenimplementierung ähnelt der obigen Klasse, aber die gleiche Interessenmethode wurde statisch gemacht:
Klasse aclassDiesmal gibt es keine Konstruktormethode; Es besteht keine Notwendigkeit dafür. Der Parameter der Konstruktormethode ist jetzt der Parameter der Interessenmethode. Die Interessenmethode wurde statisch gemacht, indem es mit dem reservierten Wort statisch in der Methodeimplementierung (Definition) vorgegangen ist (Definition).
Eine geeignete Hauptklasse für die obige Klasse lautet:
öffentliche Klasse TheclassDie Hauptmethode hier hat nur eine Aussage. Dieser Ausdruck (Aussage) instanziiert kein Objekt aus der Klasse. Es verwendet nur den Klassennamen, gefolgt von einem Punkt und dann den Namen der statischen Methode mit seinem Argument „gesehen“. Die Ausgabe aus der statischen Methode ist,
gesehenDer Ausdruck „Aclas.mthd ("gesehen") ", nennt die statische Methode, mthd () und ruft sie nicht auf. Eine nicht statische Methode wird aufgerufen, während eine statische Methode aufgerufen wird. Eine statische Methode arbeitet nicht mit dem instanziierten Objekt. Es arbeitet normalerweise mit der Klasse (Name).
Statische Methode in der Hauptklasse
Die Hauptklasse ist nicht instanziiert. Eine Methode in der Hauptklasse muss statisch gemacht werden. Das folgende Programm zeigt dies:
öffentliche Klasse TheclassDie Interessenmethode ist von der Main () -Methode getrennt. Die Implementierung muss dem reservierten Wort statisch vorausgehen. Die main () -Methode ist ebenfalls statisch. Beide statischen Methoden werden bezeichnet, aber nicht aufgerufen. Die Interessenmethode wird mit dem Ausdruck aufgerufen,
mthd ("gesehen");Es gibt keinen vorhergehenden Punkt und Objekt oder keine Klasse; Weil sowohl MTHD () als auch Main () in derselben Klassenimplementierung sind. Die Ausgabe ist:
gesehenAbschluss
In C ++ wird eine Methode (Mitgliedsfunktion) aufgerufen, und eine statische Mitgliedsfunktion wird ebenfalls aufgerufen. In Java wird eine nicht statische Methode aufgerufen, während eine statische Methode aufgerufen wird. Viele Java -Programmierer kümmern sich nicht um den Unterschied zwischen Invoke und Call. Dieser Leser sollte jedoch ein Java-Programmierer mit einem besseren Bild sein, indem das Java-Vokabular angemessen verwendet wird: Eine nicht statische Methode wird aufgerufen, während eine statische Methode aufgerufen wird. Die Abbildungen wurden oben gemacht. Jede Methode in der Hauptklasse muss statisch sein. Diese Methode wird in der Hauptklasse aufgerufen.