Das
Es muss immer etwas geben, das das aktuelle Objekt der Klasse darstellt. Genau wie dieser Zeiger in C ++ repräsentiert das dieses Schlüsselwort in Java den Verweis auf das aktuelle Objekt.
Es hat drei Hauptfunktionen:
1. Rufen Sie andere Konstruktoren im Konstruktor auf.
Zum Beispiel gibt es eine Schülerklasse mit drei Konstruktoren. Wenn Sie einen anderen Konstruktor in einem bestimmten Konstruktor anrufen, ist dies () erforderlich, und es ist nicht möglich, Student () direkt zu verwenden.
2. Geben Sie den Verweis auf das aktuelle Objekt zurück.
3.. Unterscheiden Sie zwischen Mitgliedsnamen und Parameternamen.
Siehe das folgende Beispiel:
Student der öffentlichen Klasse {privater String -Name; privates int Alter; privates String College; public student () {alter = 20; } public student (String name) {this (); // kann nicht als Student aufrufen, nur diese () Methode verwenden. this.name = name; System.out.println ("Dieser Schülername ist"+Name); } public student (String -Name, String College) {this (name); // c ++ Sie können andere Konstruktoren direkt aufrufen. College = College; System.out.println ("Dieser Studentenname ist"+name+"College ist"+College); } public student upgrade () {ay ++; gib dies zurück; } public void print () {system.out.println ("Name ist:"+name+"Alter ist:"+Alter+"College ist:"+College); } public static void main (String [] args) {student student1 = neuer student ("linc"); Student student2 = neuer student ("linc", "Shenyang College"); Student2.Upgrade (). print (); }}Wenn Sie im riesigen Ozean von Objekten verloren gehen, vergessen Sie nicht, dies zu verwenden, um sich selbst zu finden.
super
Super ist dieser Vater. Aus der Perspektive von Gesichtsobjekten sind diese beiden Konzepte leicht zu verstehen.
Unterklassen werden aus der Elternklasse geerbt. Die geschützten und höheren Eigenschaften und Methoden der übergeordneten Klasse werden von Natur aus in der Unterklasse geboren. Also, warum brauchst du noch das Keyword Super?
Schauen Sie sich zunächst die Konstruktion der Elternklasse an. Beim Bau der Unterklasse müssen Sie zunächst den Standardkonstruktor der übergeordneten Klasse aufrufen, der mit den Baueigenschaften von C ++ übereinstimmt. Wenn die übergeordnete Klasse über mehrere Konstruktoren verfügt, müssen Sie angeben, welche Sie anrufen sollen. Dies erfordert Super (arg1, arg2 ...).
Es ist zu beachten, dass beim Aufrufen des Basisklassenkonstruktors im Konstruktor der Unterklasse Super als erster geschrieben werden muss, sonst wird ein Fehler gemeldet.
Zweitens, nennen Sie diese Methode der übergeordneten Klasse in einigen Methoden, die die übergeordnete Klasse überschreiben. Wie wir alle wissen, sind einige Methoden zur Überschrift übergeordneter Klassen in Unterklassen eine Möglichkeit zum orientierten Polymorphismus in objektorientiertem, und aus verschiedenen anderen Gründen muss diese Methode der übergeordneten Klasse in dieser Methode zur Unterscheidung aufgerufen werden. Zu diesem Zeitpunkt muss Super verwendet werden, um es zu vervollständigen.
öffentliche Klassenlader erweitert Schüler {private String -Dienst; public classleader () {Duty = "Class Monitor"; } public classLader (String Duty, String -Name, String College) {Super (Name, College); this.duty = duty; } public void print () {super.print (); System.out.println ("Pflicht ist" + Dienst); } public static void main (String [] args) {classleader Leader = New Classleader ("Life", "Linc", "Shenyang"); Leader.print (); }}Platzieren Sie die beiden Klassendateien in demselben Verzeichnis, kompilieren Sie und führen Sie aus:
D:/Workspace/Java/Project261/Super> Java -d. *Java d:/Workspace/Java/Project261/Super> Java -Klassenlader
Auslaufergebnisse:
Dieser Studentname ist Linc Dieser Studentname ist Linc College ist Shenyang Name ist: Linc Age ist: 20 College ist: Shenyang Pflicht ist das Leben
Sehen Sie, wie es in anderen Sprachen behandelt wird:
C# stellt das Basis -Schlüsselwort zur Verfügung, um die ähnlichen Funktionen wie Super zu vervollständigen, und C ++ ruft es direkt mit dem Namen der Basisklasse auf.