Maison > Java > javaDidacticiel > le corps du texte

Explication détaillée de la façon d'utiliser This en Java

黄舟
Libérer: 2017-09-08 09:44:54
original
2792 Les gens l'ont consulté

Cet article présente principalement des informations pertinentes avec des exemples détaillés d'utilisation de This en Java. J'espère que grâce à cet article, tout le monde pourra comprendre et maîtriser l'utilisation de ce mot-clé. Les amis dans le besoin pourront se référer à

Java Explication détaillée des exemples de cette utilisation dans

Lors de la définition d'une variable avec un nom de classe, ce qui est défini n'est qu'une référence, et le monde extérieur peut accéder aux propriétés et méthodes de cette classe via cette référence.

Y a-t-il suffisamment ou devrait-il y avoir une référence dans la classe pour accéder à ses propres propriétés et méthodes ?

Haha, Java fournit une très bonne chose, qui est l'objet this, qui peut référencer les propriétés et méthodes de cette classe dans la classe. Prenons d'abord un exemple simple :


public class ThisDemo { 
  String name="Mick";
  public void print(String name){
    System.out.println("类中的属性 name="+this.name);
    System.out.println("局部传参的属性="+name);
  }  
  public static void main(String[] args) {
    ThisDemo tt=new ThisDemo();
    tt.print("Orson");
  }
}
Copier après la connexion
Concernant le retour d'une référence à la classe elle-même, "Thinking in Java" a un exemple très classique.

Renvoyez l'objet lui-même via ce mot-clé, puis implémentez plusieurs opérations dans une seule instruction, ou publiez-le.


public class ThisDemo { 
  int number;
  ThisDemo increment(){
     number++;
     return this;
  } 
 private void print(){
     System.out.println("number="+number);
  }
  public static void main(String[] args) {
    ThisDemo tt=new ThisDemo();
     tt.increment().increment().increment().print();
  }
}
Copier après la connexion
Il devrait être possible de définir deux constructeurs dans une classe et d'appeler l'autre constructeur dans un constructeur via cette référence.

Quelle est l'utilité d'un tel mécanisme de mise en œuvre dans le développement réel d'applications ? Postez le code écrit ci-dessous :


public class ThisDemo { 
  String name;
  int age;
  public ThisDemo (){ 
    this.age=21;
  }   
  public ThisDemo(String name,int age){
    this();
    this.name="Mick";
  }   
 private void print(){
     System.out.println("最终名字="+this.name);
     System.out.println("最终的年龄="+this.age);
  }
  public static void main(String[] args) {
    ThisDemo tt=new ThisDemo("",0); //随便传进去的参数
    tt.print();
  }
}
Copier après la connexion
Bien que le code ci-dessus soit très court, il semble très logique de comprendre Attribuer un nom dans le constructeur avec des paramètres. l'attribut age sans paramètres.

Mais personnellement, je pense qu'il y a un problème. Lors de l'instanciation d'une classe, vous devez d'abord allouer de la mémoire pour l'objet ThisDemo et appeler d'abord le constructeur ThisDemo(String name, int age).

Lors de l'exécution de la première ligne, appelez le constructeur ThisDemo(), ce qui signifie qu'il doit y avoir deux espaces mémoire, l'un est l'espace mémoire alloué pour ThisDemo (String name, int age) et l'autre est l'espace d'exécution de ThisDemo().

Pourquoi les deux attributs nom et âge dans le même objet sont-ils instanciés dans le résultat final imprimé ? Merci de m'éclairer !

Pour résumer :

1) Le mot-clé this est une référence à lui-même à l'intérieur de la classe, ce qui peut faciliter l'accès des méthodes de la classe à ses propres propriétés

2) Vous pouvez renvoyer une référence à la propre classe de l'objet, et vous pouvez également appeler un autre constructeur dans un constructeur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal