Utilisation du mot-clé this en Java

Le rôle de ceci en Java est de faire référence à un objet. Selon l'emplacement de celui-ci, les principales méthodes de référence sont divisées en deux situations:

  • Faites référence à l'objet initialisé dans le constructeur dans le constructeur;
  • Se référer à l'objet appelant la méthode dans la méthode

Le plus grand rôle de ceci est de permettre l'accès à une autre méthode ou variable d'instance par une méthode de la classe;

public class DogText {
    
    
	//定义一个 jump 方法
	public  void jump()
	{
    
    
		System.out.println("正在执行 jump 方法!");
	}
	public void run()
	{
    
    
		//调用 jump 方法,构造器初始化;
		DogText d = new DogText();
		d.jump();
		System.out.println("正在执行 Run 方法");
	}
	
	public static void main(String[] args)
	{
    
    
		DogText d = new DogText();
		d.run();
	}

}

Dans l'exemple ci-dessus, la méthode jump () de la classe est appelée dans la méthode run (). Ici, l'objet DogText est créé pour appeler cette méthode, mais dans la fonction principale fonction main (), une autre référence d'objet DogText est créée ;

La méthode d'appel ci-dessus peut fonctionner normalement, mais la méthode d'exécution de code est: 1. Dans la première méthode run (), l'appel d'autres méthodes (comme la méthode jump ()) doit créer un objet DogText ()? 2. Est-il nécessaire de recréer un objet DogText ()?

Pour la première question, oui, vous devez utiliser un objet pour appeler une méthode modifiée non statique , vous devez donc créer un nouvel objet, 2, pas nécessairement, car un objet a été créé lorsque la fonction principale run () est appelée , continue Il peut être appelé directement lors de son utilisation et il est OK.

La méthode run () appelle la méthode jump (), qui peut être directement utilisée pour obtenir l'objet de la méthode dans run (), et elle peut être satisfaite avec le mot-clé this

public void run()
	{
    
    
		//this 引用调用 run()的对象
		this.jump();
		System.out.println("正在执行 Run 方法");
	}

En Java, une méthode dans une classe est autorisée à appeler directement une autre méthode, et le préfixe this peut être omis, de sorte que la méthode run () peut être réécrite comme:

public void run()
	{
    
    
		//this 引用调用 run()的对象
		this.jump();
		System.out.println("正在执行 Run 方法");
	}

La plupart du temps, lorsqu'une méthode appelle une autre méthode, l'effet d'ajouter ou de ne pas l'ajouter à la variable d'instance est le même; bien que cela soit omis, l'objet qui a appelé la méthode existe toujours;

Une chose à noter ici est que les méthodes modifiées statiquement ne peuvent pas utiliser le mot clé this, car ce mot clé ne peut pas pointer vers un objet approprié; par conséquent, les méthodes modifiées statiquement ne peuvent pas utiliser cette référence et ne peuvent être appelées que par des objets, ce qui entraîne l'un des Exigences de grammaire java: les membres statiques ne peuvent pas accéder directement aux membres statiques ;

Le cas est le suivant:

public class DogText {
    
    
	//定义一个 jump 方法
	public  void jump()
	{
    
    
		System.out.println("正在执行 jump 方法!");
	}
	public void run()
	{
    
    
		//调用 jump 方法,构造器初始化;
		DogText d = new DogText();
		d.jump();
		System.out.println("正在执行 Run 方法");
	}
	
	public static void main(String[] args)
	{
    
    
		//run() 程序报错,无法从静态上席文引用非静态
		DogText d = new DogText();
		d.run();
	}

}

Petit résumé

Voici quelques utilisations du mot-clé this, je peux le résumer en deux points:

  • 1. Généralement, la méthode de la classe peut appeler directement une autre méthode et une autre variable membre, cela peut être ajouté ou non, et cela fait référence à l'objet;
  • 2. La méthode de modification statique ne peut pas appeler la méthode de modification non statique et le constructeur doit construire un nouvel objet avant de l'appeler.

L'article a été publié pour la première fois dans le compte public des passionnés de développement Java

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42512684/article/details/106813400
conseillé
Classement