Ce
Il doit toujours y avoir quelque chose pour représenter l'objet actuel de la classe. Tout comme ce pointeur en C ++, le mot clé de Java représente la référence à l'objet actuel.
Il a trois fonctions principales:
1. Appelez d'autres constructeurs du constructeur.
Par exemple, il y a une classe étudiante avec trois constructeurs. Si vous appelez un autre constructeur dans un certain constructeur, ce () est requis et il n'est pas possible d'utiliser Student () directement.
2. Renvoyez la référence à l'objet actuel.
3. Distinguer les noms de variables de membre et les noms de paramètres.
Voir l'exemple suivant:
classe publique Student {nom de chaîne privée; Âge privé; collège de cordes privées; Étudiant public () {Age = 20; } public Student (nom de chaîne) {this (); // ne peut pas être appelé étudiant, utilisez uniquement cette méthode (). this.name = name; System.out.println ("Ce nom étudiant est" + nom); } Public Student (nom de chaîne, String College) {this (nom); // c ++ Vous pouvez directement appeler d'autres constructeurs this.college = collège; System.out.println ("Ce nom d'étudiant est" + nom + "College is" + College); } Public Student upgrade () {Age ++; retourner ceci; } public void print () {System.out.println ("Nom est:" + nom + "L'âge est:" + Age + "College est:" + collège); } public static void main (String [] args) {étudiant étudiant1 = new student ("Linc"); Student Student2 = New Student ("Linc", "Shenyang College"); Student2.Upgrade (). print (); }}Lorsque vous êtes perdu dans le vaste océan d'objets, n'oubliez pas de l'utiliser pour vous retrouver.
super
Super est ce père. Du point de vue des objets faciaux, ces deux concepts sont faciles à comprendre.
Les sous-classes sont héritées de la classe parent. Les propriétés protégées et supérieures et les méthodes de la classe parent sont nées avec de la sous-classe dans la sous-classe. Alors, pourquoi avez-vous toujours besoin du mot-clé Super?
Tout d'abord, regardez la construction de la classe parent. Lors de la construction de la sous-classe, vous devez d'abord appeler le constructeur par défaut de la classe parent, ce qui est cohérent avec les propriétés de construction de C ++. Lorsque la classe Parent a plusieurs constructeurs, vous devez spécifier lequel appeler. Cela nécessite Super (Arg1, Arg2 ...).
Il convient de noter que lorsque vous appelez le constructeur de classe de base dans le constructeur de la sous-classe, Super doit être écrit comme le premier, sinon une erreur sera signalée.
Deuxièmement, appelez cette méthode de la classe parent dans certaines méthodes qui sous-classent la classe parent. Comme nous le savons tous, certaines méthodes d'écrasement des classes de parents dans les sous-classes sont un moyen de le polymorphisme orienté dans les objets, et pour diverses autres raisons, cette méthode de la classe parent doit être appelée dans cette méthode pour distinguer. Pour le moment, Super doit être utilisé pour le terminer.
La classe publique classleader étend Student {private String Duty; public classLeader () {dety = "class monitor"; } public classLeader (string taring, nom de chaîne, String College) {super (nom, collège); this.duty = devoir; } public void print () {super.print (); System.out.println ("Duty Is" + Duty); } public static void main (string [] args) {classleader leader = new classLeader ("life", "lic", "shenyang"); leader.print (); }}Placez les deux fichiers de classe dans le même répertoire, compilez et exécutez:
D: / workspace / java / project261 / super> java -d. * java d: / workspace / java / project261 / super> Java classleader
Résultats en cours:
Ce nom d'étudiant est Linc Ce nom d'étudiant est Linc College est le nom de Shenyang est: Linc Age est: 20 College est: Shenyang Duty Is Life
Voyez comment il est géré dans d'autres langues:
C # fournit le mot-clé de base pour compléter les fonctions similaires à Super, et C ++ l'appelle directement avec le nom de la classe de base.