Hola a todos, hoy os explicare que es la variable this y como se utiliza en una clase de Java.
La variable this se usa para diferenciar un atributo de una variable normal y corriente dentro de una clase. Veamos un ejemplo de un trozo de una clase:
//Constructores /** * Constructor por defecto */ public Empleado(){ this.nombre=""; this.apellido=""; this.edad=0; this.salario=0; } /** * Constructor con 4 parametros * @param nombre nombre del empleado * @param apellido nombre del empleado * @param edad edad del empleado * @param salario salario del empleado */ public Empleado(String nombre, String apellido, int edad, double salario){ this.nombre=nombre; this.apellido=apellido; this.edad=edad; this.salario=salario; }
Como vemos, los atributos deben diferenciarse de las variables que pasamos como parámetros.
También se usa para invocar métodos de una propia clase dentro de esta. Otro uso es invocar otro constructor pasandole como parámetro, los parámetros del propio constructor. Veamos un ejemplo, de este ultimo uso:
//Constructores /** * Constructor por defecto */ public Empleado(){ this ("", "", 0, 0); } /** * Constructor con 4 parametros * @param nombre nombre del empleado * @param apellido nombre del empleado * @param edad edad del empleado * @param salario salario del empleado */ public Empleado(String nombre, String apellido, int edad, double salario){ this.nombre=nombre; this.apellido=apellido; this.edad=edad; this.salario=salario; }
Como vemos, es como si llamáramos al constructor que tiene esos parámetros con esos tipos de datos.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Interesante para ir aprendiendo.Gracias.
Tengo duda, los atributos donde se declaran? en la clase?
Si
Hola amigo una pregunta, el profesor de mi clase dijo que cuando se crea el objeto de la clase
Empleado empleado1 = new Empleado(); el empleado que sigue después de new lo nombro como un constructor, yo se que un constructor es un método especial y trata por aparte entonce por que lo nombre de esta manera gracias men
Aquí dejo mi ejemplo, es similar al que preparó.
//CLASE EMPLEADO
public class Empleado {
String nombre;
String apellido;
int edad;
double salario;
//Constructores
/**
* Constructor por defecto
*/
public Empleado(){
this («Alin Piero», «Javier», 27, 4800.99);
}
/**
* Constructor con 4 parametros
* @param nombre nombre del empleado
* @param apellido nombre del empleado
* @param edad edad del empleado
* @param salario salario del empleado
*/
public Empleado(String nombre, String apellido, int edad, double salario){
this.nombre=nombre;
this.apellido=apellido;
this.edad=edad;
this.salario=salario;
}
}
// CLASE PRINCIPAL O MAIN
public class Main {
public static void main(String[] args)
{
Empleado emp = new Empleado();
System.out.println(«Datos del Empleado:»);
System.out.println(«\n========================»);
System.out.println(«Nombre = «+emp.nombre);
System.out.println(«Nombre = «+emp.apellido);
System.out.println(«Nombre = «+emp.edad);
System.out.println(«Nombre = «+emp.salario);
}
}
Sebacho, si te adelantas en el tema de Polimorfismo vas a notar que después del new puede apuntar a otro constructor. es decir, el objeto empleado1 puede actuar como Coordinador, como profesor, como auxiliar, entonces da entender que ese constructor especial que tú llamas, recibe todo lo que tiene la clase, es una especie asilo o area donde está toda la información que requiere un objeto.