Autor Tema: BlueJ crear objetos y asignar valores a sus variables Ejercicio CU00640B Java  (Leído 5194 veces)

Bcks7

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 48
    • Ver Perfil
Una vez mas dejando el ejercicio a su disposición esperando sea correcto, gracias de antemano.

Código: [Seleccionar]
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]
« Última modificación: 19 de Febrero 2016, 09:05 por Alex Rodríguez »

Enzo

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 82
    • Ver Perfil
Re:Ejercicio CU00640B Java desde cero.
« Respuesta #1 en: 15 de Febrero 2016, 13:32 »
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,

Bcks7

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 48
    • Ver Perfil
Re:Ejercicio CU00640B Java desde cero.
« Respuesta #2 en: 15 de Febrero 2016, 18:19 »
Hola Enzo, agradezco tu respuesta, aquí te dejo el ejercicio corregido, espero esté bien.

Código: [Seleccionar]
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

Enzo

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 82
    • Ver Perfil
Re:Ejercicio CU00640B Java desde cero.
« Respuesta #3 en: 16 de Febrero 2016, 19:17 »
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:

Código: [Seleccionar]
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:

Código: [Seleccionar]
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:

Código: [Seleccionar]
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,
« Última modificación: 19 de Febrero 2016, 09:06 por Alex Rodríguez »

Bcks7

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 48
    • Ver Perfil
Re:Ejercicio CU00640B Java desde cero.
« Respuesta #4 en: 17 de Febrero 2016, 02:17 »
Ok, me queda muy claro, hare unos ejercicios con comentarios para memorizarlo, gracias por todo Enzo.

 

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".