Autor Tema: Uso del "this" en Java. Inicializar objetos invocando constructor (CU00652B)  (Leído 2913 veces)

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Hola a todos

Hoy anduve probando esto del this... y según vi con esto puedes inicializar las variables en el constructor sin estar escribiendo pepe = "grande", edad = 24, cedula = "2-234-123". . .

Citar
public class Deposito {   

    //Campos de la clase
    private float diametro;
    private float altura;
    private String idDeposito;

    //Constructor sin parámetros auxiliar
    public Deposito () { //Lo que hace es llamar al constructor con parámetros pasándole valores vacíos
        this(0,0,"");            } //Cierre del constructor


Aqui veo que se inicializa las variablels diametro, altura y idDeposito ...  lo veo bastante util para no tener que estar escribiendo tantas cosas.

Viene la duda.

Quize realizar una prueba, hice esta clase  Profesor_primaria:

Código: [Seleccionar]
package Prof;

public class Profesor_primaria {
    private String nombre, apellido, materia;
    private int edad;
   
    public Profesor_primaria(){
        this("", "", "", 0); 
    }
   
    public void setNombre(String vNombre){
        nombre = vNombre;
    }
   
    public void setApellido(String vApellido){
        apellido = vApellido;
    }
   
    public void setEdad(int vEdad){
        edad = vEdad;
    }
   
    public void setMateria(String vMateria){
        materia = vMateria;
    }
   
    public String getNombre(){
        return nombre;
    }
   
    public String getApellido(){
        return apellido;
    }
   
    public int getEdad(){
        return edad;
    }
   
    public String getMateria(){
        return materia;
    }
}

En la linea del this, pensé que no me daría problemas, pero me suelta un error. Compare el código del capitulo con mi código, busque cual podía ser el problema pero no pude encontrarlo.

Quizás no funcione para eso... o quizás si. ¿Como funciona el this?, ¿Abre escrito mal algo?.
« Última modificación: 26 de Marzo 2015, 08:57 por Alex Rodríguez »
"Luchar por tus sueños y cumplirlos... eso es vivir.."

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Duda con el uso del "this". Java (CU00652B)
« Respuesta #1 en: 25 de Marzo 2015, 20:45 »
Hola Dan

Citar
La invocación this , o this (parámetros) supone una invocación al constructor que coincida con los parámetros que se pasan para que se ejecute. Al igual que existen formas de invocar a métodos, existen formas de invocar a constructores, y ésta es una de ellas.
La cita anterior corresponde al texto de esta lección. Si lo relees estoy seguro que entenderás porque no te funciona la línea del 'this'.

El IDE BlueJ muestra un texto orientativo cuando el compilador se detienen en esta línea, supongo que NetBeans también la hará.

Saludos

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Re:Duda con el uso del "this". Java (CU00652B)
« Respuesta #2 en: 26 de Marzo 2015, 04:49 »
Hola!

Ooops, disculpadme por mi falta de atención!!

Me puse a jugar con el this en la practica de la clase motor. Aquí descubrí algunas cosas con el:

Una especie de invocación del constructor, solo que este vez, lo genera con parámetros...



Lo de abajo (clone, equals, finalize...) supongo que se trata de un nivel mas alto.



Ahora como vemos aquí, tengo dos formas de invocar el objeto


También con el, puedo llamar métodos y variables de la clase:


this seria como la afirmación de que lo que llamo se encuentra en la clase.

Es lo mismo escribir setTipoBomba(2); que this.setTipoBomba(2);, igual que tipoBomba y this.tipoBomba.

Supongo que como el código no es extenso, me parece un tanto tonta. Creo que tiene mas importancia, o no se...  xD
« Última modificación: 26 de Marzo 2015, 08:58 por Alex Rodríguez »
"Luchar por tus sueños y cumplirlos... eso es vivir.."

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".