Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: BelCrow en 08 de Septiembre 2014, 21:47

Título: Practica CU00654B La palabra clave this en java
Publicado por: BelCrow en 08 de Septiembre 2014, 21:47
favor revisar....

Profesor:
Código: [Seleccionar]
//clase
public class Profesor {
    private String nombre;
    private String apellido;
    private int edad;
    private boolean casado;
    private boolean especialista;

    //constructor sin parametr
    public Profesor () {
        this("", "", 0, false, false);
    }

    //constructor con parametros
    public Profesor (String nombre, String apellido, int edad, boolean casado, boolean especialista) {
        this.nombre = nombre;
        this.apellido = apellido;
        this.edad = edad;
        this.casado = casado;
        this.especialista = especialista;
    }

    //setters
    public void setNombre (String nombre) {
        this.nombre = nombre;
    }

    public void setApellido (String apellido) {
        this.apellido = apellido;
    }

    public void setEdad (int edad) {
        this.edad = edad;
    }

    public void setCasado (boolean casado) {
        this.casado = casado;
    }

    public void setEspecialista (boolean especialista) {
        this.especialista = especialista;
    }

    //getters
    public String getNombre () {return nombre;}

    public String getApellido () {return apellido;}

    public int getEdad () {return edad;}

    public boolean getCasado () {return casado;}

    public boolean getEspecialista () {return especialista;}
}
Título: Re:Practica CU00654B La palabra clave this en java
Publicado por: Alex Rodríguez en 09 de Septiembre 2014, 09:02
Hola, el código está perfecto. Además es un buen ejemplo de diferentes usos de la palabra clave this en java.

En este fragmento:

    public Profesor () {
        this("", "", 0, false, false);
    }

La palabra clave this seguida de paréntesis y parámetros lo que hace es invocar un constructor (al constructor que recibe cinco parámetros). En este caso invoca al constructor pasándole como nombre "", como apellido "", como edad 0, como casado false y como especialista false. También podía haberse escrito con iguales resultados:

   public Profesor () {
        nombre = "";
        apellido = "";
        edad = 0;
        casado = false;
        especialista = false;
    }

Esta forma, aunque es igualmente válida, consume más líneas de código.

En cambio this en otras partes del código como: this.nombre = nombre; lo que hace es diferenciar entre el atributo (this.nombre) y el parámetro que recibe la función (nombre).

Resulta un ejemplo interesante.

Saludos
Título: Re:Practica CU00654B La palabra clave this en java
Publicado por: BelCrow en 09 de Septiembre 2014, 11:51
Gracias Alex, esa forma la vi en el ejercicio CU00652B que la usaste para invocar un constructor, me pareció super practico, fácil y ademas con menos lineas, así que decidí implementarlo en este ejercicio...

Quiero hacer algunas pruebas y luego hacer preguntas sobre este modo de crear constructores, las haré en este mismo tema pero cuando llegue a mi casa y las realice..
Título: Re:Practica CU00654B La palabra clave this en java
Publicado por: BelCrow en 10 de Septiembre 2014, 21:42
Ya hice las pruebas y ellas solas respondieron mis dudas...

Hay que usas this en el constructor siguiendo el orden en las que fueron puestas las variables.. si te falta una variable, te tira error y si no lo haces en orden también... incluso si las variables fueron introducidas de un solo golpe sigue teniendo las mismas reglas... ejp.

Código: [Seleccionar]
public class Profesor2 {
    private String nombre, apellido;
    private int edad;
    private boolean casado, especialista;

    //constructor sin parametr
    public Profesor2 () {
        this("", "", 0, false, false);
    }
}

........