Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Bcks7 en 15 de Febrero 2016, 05:35
-
Una vez mas dejando el ejercicio a su disposición esperando sea correcto, gracias de antemano.
public class Profesor{//Inicio de la clase
private String nombre;
private String apellidos;
private int edad;
private boolean casado;
private boolean especialista;
//Constructor 1
public Profesor (String nombreProfesor, String apellidoProfesor, int edadProfesor, boolean casadoProfesor, boolean especialistaProfesor){
nombre = "Ernesto";
apellidos = "Nuñez";
edad = 47;
casado = false;
especialista = true;
}
//Constructor 2
public Profesor (){
nombre = "";
apellidos = "";
edad = 0;
casado = false;
especialista = false;
}
//Establecer valores
public void setNombre (String valorNombre){
nombre = valorNombre;
}
public void setApellidos (String valorApellidos){
apellidos = valorApellidos;
}
public void setEdad (int valorEdad){
edad = valorEdad;
}
public void setCasado (boolean valorCasado){
casado = valorCasado;
}
public void setEspecialista (boolean valorEspecialista){
especialista = valorEspecialista;
}
//Obtener valores
public String getNombre () {return nombre;}
public String getApellidos () {return apellidos;}
public int getEdad () {return edad;}
public boolean getCasado () {return casado;}
public boolean getEspecialista () {return especialista;}
}//Cierre de la clase/code]
-
Hola Bcks7,
El constructor 2, que es que el no recibe parámetros esta OK.
Pero, si creas un objeto con el constructor 1, que es el que si recibe los parámetros, observaras que pongas los datos que pongas al crear el objeto no los guarda en las variables, ya que, en ese constructor, le has dicho que sean unos valores específicos ("Ernesto", "Nuñez", 47, false y true).
Para que sea correcto, lo que debes decirle es que guarde el valor de la variable temporal en la variable permanente.
Ejemplo: nombre = nombreProfesor;
Y así con cada atributo.
Espero haberme explicado bien. De todas formas, si tienes dudas dímelo.
Un Saludo,
-
Hola Enzo, agradezco tu respuesta, aquí te dejo el ejercicio corregido, espero esté bien.
public class Profesor{//Inicio de la clase
private String nombre;
private String apellidos;
private int edad;
private boolean casado;
private boolean especialista;
//Constructor 1
public Profesor (String nombreProfesor, String apellidoProfesor, int edadProfesor, boolean casadoProfesor, boolean especialistaProfesor){
nombre = "nombreProfesor";
apellidos = "apellidosProfesor";
edad = 0;
casado = false;
especialista = false;
}
//Constructor 2
public Profesor (){
nombre = "";
apellidos = "";
edad = 0;
casado = false;
especialista = false;
}
//Establecer valores
public void setNombre (String valorNombre){
nombre = valorNombre;
}
public void setApellidos (String valorApellidos){
apellidos = valorApellidos;
}
public void setEdad (int valorEdad){
edad = valorEdad;
}
public void setCasado (boolean valorCasado){
casado = valorCasado;
}
public void setEspecialista (boolean valorEspecialista){
especialista = valorEspecialista;
}
//Obtener valores
public String getNombre () {return nombre;}
public String getApellidos () {return apellidos;}
public int getEdad () {return edad;}
public boolean getCasado () {return casado;}
public boolean getEspecialista () {return especialista;}
}//Cierre de la clase/code]
Reportar al m
-
Hola Bcks7,
Cuando se crea una clase con un constructor que recibe los atributos lo que se busca es que, al crear un objeto de esta clase, se le puedan dar esos atributos.
Miremos paso a paso el constructor:
public Profesor (String nombreProfesor, String apellidoProfesor, int edadProfesor, boolean casadoProfesor, boolean especialistaProfesor){
Lo que queremos es que, al crear el objeto, nos pida:
1º Un nombre de Profesor y lo guarda en la variable nombreProfesor.
2º Un apellido y lo guarde en la variable apellidoProfesor.
3º Una edad y la guarde en la variable edadProfesor.
4º Un false o true si esta casado y lo guarde en la variable casadoProfesor.
5º Un false o true si esta especializado y lo guarde en la variable especialistaProfesor.
Y con estos atributos que se le han dado creara el objeto.
El Problema es que en las siguientes líneas de código, si le ponemos:
nombre = "nombreProfesor";
apellidos = "apellidosProfesor";
edad = 0;
casado = false;
especialista = false;
Lo que estamos haciendo es cambiarle esos atributos por (en este ultimo caso) nombreProfesor, apellidosProfesor, 0, false y false.
Para guardar los valores que le hemos dado al crear el objeto lo que debemos poner es:
nombre = nombreProfesor;
apellidos = apellidosProfesor;
edad = edadProfesor;
casado = casadoProfesor;
especialista = especialistaProfesor;
De esta forma, si por ejemplo, al crear el objeto la damos un Nombre de Profesor "Paco", lo que hace es que el valor "Paco" que lo hemos recogido en la variable temporal <nombreProfesor> lo guarda en la variable <nombre> de la clase.
Realiza el cambio y haz una prueba creando un par de objetos y dándole atributos distintos para que veas claramente la diferencia.
Espero habértelo sabido explicar correctamente, pero si no es así, ya sabes... envíame un comentario y lo volvemos a repasar.
Un Saludo,
-
Ok, me queda muy claro, hare unos ejercicios con comentarios para memorizarlo, gracias por todo Enzo.