Bienvenidos sean a este post, hoy veremos uno de los elementos mas usados en cualquier lenguaje.
Como mencionamos, este es uno de los elementos mas importantes en programacion. Y no es otro que el afamado puntero this. Este nos permite utilizarlo como referencia al objeto de la clase actual en un instancia, metodo o un constructor y nos permite referenciar los miembros de una clase como las variables, metodos o constructores. Lo podemos diferenciar de la siguiente manera:
- Diferencia las variables de instancia de las variables locales si tienen el mismo nombre dentro de un constructor o un metodo
- Nos permite llamar un constructor (Parametrizado o por defecto) de otro en una clase, es conocido como invocacion de constructor explicita
Para entenderlo un poco mas, vamos a ver un ejemplo:
Este.java
public class Este
{
int num = 10;
Este()
{
System.out.println("Ejemplo de this.");
}
Este(int num)
{
this();
this.num = num;
}
public void saludar()
{
System.out.println("Bienvenido a tinchicus.com");
}
public void imprimir()
{
int num = 20;
System.out.println("local num = " + num);
System.out.println("instancia num = " + this.num);
this.saludar();
}
public static void main(String[] args)
{
Este o1 = new Este();
o1.imprimir();
Este o2 = new Este(30);
o2.imprimir();
}
}
Vamos a analizar este caso, nuestra clase tiene una variable de tipo int llamado num con un valor de 10. Despues tendremos un constructor predeterminado que solo muestra un mensaje. Lo siguiente es una sobrecarga del constructor para que reciba un valor, y en este tendremos esta linea:
this();
Esta es utilizada para invocar al constructor predeterminado, la siguiente linea nos permitira modificar el valor de la variable num con el nuevo valor informado. Lo siguiente es la definicion de un metodo llamado saludar, el cual se encargara de mostrar un mensaje y el ultimo metodo es imprimir. Este tiene una variable llamada num, lo siguiente sera mostrar valor de esta variable, luego mediante this.num mostraremos el valor de la variable de la instancia, consideremos como global, y por ultimo llamara al metodo saludar. En el main creamos dos objetos de la clase Este, el primero con el constructor predeterminado y el segundo con otro constructor y en ambos casos llamaremos al metodo imprimir, compilemos y ejecutemos para ver su salida:
$ java Este
Ejemplo de this.
local num = 20
instancia num = 10
Bienvenido a tinchicus.com
Ejemplo de this.
local num = 20
instancia num = 30
Bienvenido a tinchicus.com
$
Vean como la primera linea nos muestra el constructor predeterminado, luego nos muestra el valor de num del metodo imprimir, despues el valor de num pero el de la instancia y por ultimo nos muestra el mensaje del metodo saludar. Recuerden que este fue el objeto del constructor predeterminado. Las siguientes lineas representan el llamado a imprimir pero del segundo objeto. Nuevamente, se invoco al constructor predeterminado, esto por el llamado de this() en el otro constructor, despues nos muestra nuevamente el valor de num local del metodo. Pero luego tenemos la sorpresa porque ahora num, el externo, si fue modificado por el nuevo valor informado en el constructor. Y por ultimo, el saludo de su funcion tal como vimos en el llamado anterior.
Para esto sirve this, para poder trabajar sobre la clase actual desde dentro de unos elementos, sea un constructor, un metodo o un objeto derivado de esta. Tambien nos sirve, para poder diferenciar cual propiedad o metodo debe usar, la clase base o instancia del mismo. En el ejemplo visto aca, si bien es muy basico, podemos observar como nos permite determinar el origen de los datos a utilizar.
En resumen, hoy hemos visto al puntero this, que es, para que sirve, como se utiliza, un ejemplo para verlo en accion, y algunos detalles mas. Espero les haya sido de utilidad y les dejo un link a GitHub donde estan los codigos creados hoy:
Les dejo algunas de mis redes sociales para seguirme o recibir una notificacion cada vez que subo un nuevo post:


Donación
Es para mantenimento del sitio, gracias!
$1.50





