Uso de la palabra clave this en Java

La función de esto en Java es hacer referencia a un objeto, según la ubicación de este, los principales métodos de referencia se dividen en dos situaciones:

  • Consulte el objeto inicializado en el constructor en el constructor;
  • Consulte el objeto que llama al método en el método

El papel más importante de esto es permitir que un método de la clase acceda a otro método o variable de instancia;

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();
	}

}

En el ejemplo anterior, el método jump () de la clase se llama en el método run (). Aquí, el objeto DogText se crea para llamar a este método, pero en la función main (), se crea otra referencia de objeto DogText. ;

El método de llamada anterior puede funcionar normalmente, pero el método de ejecución de código es: 1. En el primer método run (), llamar a otros métodos (como el método jump ()) debe crear un objeto DogText ()? 2. ¿Es necesario volver a crear un objeto DogText ()?

Para la primera pregunta, sí, debe usar un objeto para llamar a un método modificado no estático , por lo que debe crear un nuevo objeto, 2, no necesariamente, porque se ha creado un objeto cuando se llama a la función principal run () , continuar Se puede llamar directamente cuando está en uso y está bien.

El método run () llama al método jump (), que se puede utilizar directamente para obtener el objeto del método en run (), y se puede satisfacer con la palabra clave this

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

En Java, un método en una clase puede llamar directamente a otro método, y este prefijo se puede omitir, por lo que el método run () se puede reescribir como:

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

La mayoría de las veces, cuando un método llama a otro método, el efecto de agregar o no agregar esto a la variable de instancia es el mismo, aunque esto se omite, el objeto que llamó al método todavía existe;

Una cosa a tener en cuenta aquí es que los métodos modificados estáticos no pueden usar la palabra clave this, porque esta palabra clave no puede apuntar a un objeto adecuado; por lo tanto, los métodos modificados estáticos no pueden usar esta referencia y solo pueden ser llamados por objetos, lo que da como resultado Requisitos de Java Grammar; los miembros estáticos no pueden acceder directamente a los miembros estáticos ;

El caso es el siguiente:

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();
	}

}

Pequeño resumen

Los anteriores son algunos usos de la palabra clave this, puedo resumirlo en dos puntos:

  • 1. Generalmente, el método en la clase puede llamar directamente a otro método y variable miembro, esto se puede agregar o no, y se refiere al objeto;
  • 2. El método de modificación estático no puede llamar al método de modificación no estático y el constructor necesita construir un nuevo objeto antes de llamarlo.

El artículo se publicó por primera vez en la cuenta pública para entusiastas del desarrollo de Java.

Supongo que te gusta

Origin blog.csdn.net/weixin_42512684/article/details/106813400
Recomendado
Clasificación