Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Dan_SB en 25 de Marzo 2015, 18:01

Título: Uso del "this" en Java. Inicializar objetos invocando constructor (CU00652B)
Publicado por: Dan_SB en 25 de Marzo 2015, 18:01
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?.
Título: Re:Duda con el uso del "this". Java (CU00652B)
Publicado por: toni_apr 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
Título: Re:Duda con el uso del "this". Java (CU00652B)
Publicado por: Dan_SB 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...

(http://i.imgur.com/LKZRUrr.png)

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

(http://i.imgur.com/BCvGSix.png)

Ahora como vemos aquí, tengo dos formas de invocar el objeto
(http://i.imgur.com/6Upar8g.png)

También con el, puedo llamar métodos y variables de la clase:
(http://i.imgur.com/7N33uCk.png)

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