Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: jogonzalezmor en 05 de Julio 2014, 04:35

Título: Ejercicio CU00654B concepto constructor java
Publicado por: jogonzalezmor en 05 de Julio 2014, 04:35
Envío mi código...

Código: [Seleccionar]

public class Profesor
{
    // instance variables - replace the example below with your own
    private String nombre;
    private String apellidos;
    private int edad;
    private boolean casado;
    private boolean especialista;

    /**
     * Constructor de objetos de la clase Profesor que recibe parámetros
     */
    public Profesor(String nombre, String apellidos, int edad, boolean casado, boolean especialista)
    {
        // Se inicializan las variables
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.edad = edad;
        this.casado = casado;
        this.especialista = especialista;
 
    }
   
    /**
     * Constructor de objetos de la clase Profesor que no recibe parámetros
     */
    public Profesor()
    {
        // Se inicializan las variables
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.edad = edad;
        this.casado = casado;
        this.especialista = especialista;
 
    }

/**
 * Métodos setter and getter
 */
   public void setNombre (String nombre) {
        this.nombre = nombre; //this.remitente es el campo y remitente el parámetro
    }//Fin del método setNombre
   
    public void setApellidos (String apellidos) {
        this.apellidos = apellidos; //this.remitente es el campo y remitente el parámetro
    }//Fin del método setApellidos
   
    public void setEdad (int edad) {
        this.edad = edad; //this.remitente es el campo y remitente el parámetro
    }//Fin del método setEdad
   
    public void setCasado (boolean casado) {
        this.casado = casado; //this.remitente es el campo y remitente el parámetro
    }//Fin del método setCasado
   
    public void setEspecialista (boolean especialista) {
        this.especialista = especialista; //this.remitente es el campo y remitente el parámetro
    }//Fin del método setEspecialista
   
    public String getNombre(){return nombre;}//Fin del método getNombre
    public String getApellidos(){return apellidos;}//Fin del método getApellidos
    public int getEdad(){return edad;}//Fin del método getEdad
    public boolean getCasado(){return casado;}//Fin del método getCasado
    public boolean getEspecialista(){return especialista;}//Fin del método getEspecialista
   
}//Fin de la clase Profesor


No estoy seguro si en ambos constructores se deben inicializar las variables con this.

Atento a sus comentarios, me despido....

Salu2...
Título: Re:Ejercicio CU00654B
Publicado por: Ogramar en 05 de Julio 2014, 10:06
Hola, tienes que revisar el código porque no estás creando bien los constructores.

En el primer constructor this.nombre = nombre; significa que el atributo nombre toma el valor del parámetro nombre (ahí this te sirve para diferenciar una cosa y otra).

En el segundo constructor this.nombre = nombre; es lo mismo que escribir nombre = nombre; , es decir, que eso no significa nada. this sirve para diferenciar cuándo te refieres a un atributo y cuándo a un parámetro o variable local, pero si no hay parámetro ni variable local this.nombre es lo mismo que nombre.

Cuando el constructor recibe parámetros, servirán para inicializar los atributos con esos parámetros. Cuando el constructor no recibe parámetros, tendrás que inicializarlos a unos valores de defecto (normalmente cadenas vacías, ceros y false).

Salud2s