Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: heseos en 28 de Abril 2014, 05:30
-
EJERCICIO
Define una clase Bombero considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), especialista (boolean). Define un constructor que reciba los parámetros necesarios para la inicialización y los métodos para poder establecer y obtener los valores de los atributos. Compila el código para comprobar que no presenta errores, crea un objeto y comprueba que se inicializa correctamente consultando el valor de sus atributos después de haber creado el objeto. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.
Favor corregir si algo esta mal.
/*aprenderaprogramar.com
* Heseos
* Ejercicio (U00639B)
*/
public class Bombero {
//Atributos de clase
String nombre;
String apellido;
int edad;
boolean casado;
boolean especialista;
//Constructor con parametros de inicializacsion
public Bombero (String valorNombre, String valorApellido, int valorEdad, boolean valorCasado,boolean valorEspecialista){
nombre = valorNombre;
apellido = valorApellido;
edad = valorEdad;
casado = valorCasado;
especialista = valorEspecialista;
}
//Metodos Setters para establecer
public void setAsignarNombre (String valorNombre){nombre = valorNombre;}
public void setAsignarApellido (String valorApellido){apellido = valorApellido;}
public void setAsignarEdad (int valorEdad){edad = valorEdad;}
public void setAsignarCasado (boolean valorCasado){casado = valorCasado;}
public void setAsignarEspecialista (boolean valorEspecialista){especialista = valorEspecialista;}
//Metodos Getters para obtener
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;}
}
-
Hola, está correcto, lo único que podrías tener en cuenta es que al igual que se utiliza para nombrar a los métodos get getEdad, lo mismo podrías hacer con los métodos set, es decir, el nombre sería setEdad en vez de setAsignarEdad. Salu2
-
Mi ejercicio! CU00639B
public class Bombero{
String nombre, apellidos;
boolean casado, especialista;
int edad;
public Bombero(String valorNombre, String valorApellidos, boolean valorCasado, boolean valorEspecialista, int valorEdad){
nombre = valorNombre;
apellidos = valorApellidos;
casado = valorCasado;
especialista = valorEspecialista;
edad = valorEdad;
}
//setters
public void setNombre(String valorNombre){nombre = valorNombre;}
public void setApellidos(String valorApellidos){apellidos = valorApellidos;}
public void setCasado(boolean valorCasado){casado = valorCasado;}
public void setEspecialista(boolean valorEspecialista){especialista = valorEspecialista;}
public void setEdad(int valorEdad){edad = valorEdad;}
//getters
public String getNombre(){return nombre;}
public String getApellidos(){return apellidos;}
public boolean getCasado(){return casado;}
public boolean getEspecialista(){return especialista;}
public int getEdad(){return edad;}
}
-
Está todo ok!
-
En mi criterio hay algo que sobra en esta repuesta no se si estoy en lo correcto pero creo que no hace falta usar a los metodos Setters porque ya estamos usando un contructor con parametros y esta haciendo el trabajo de los Setters por lo tanto creo que la repuesta del ejercicio es:
public class Bombero
{
String nombre;
String apellidos;
int edad;
boolean casado;
boolean especialista;
public Bombero( String valorNombre, String valorApellidos, int valorEdad, boolean valorCasado, boolean valorEspecialista){
nombre = valorNombre;
apellidos = valorApellidos;
edad = valorEdad;
casado = valorCasado;
especialista = valorEspecialista;
}
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;}
}
-
Hola Rabih, te indico por qué se deben incluir los métodos getters y setters:
El primer motivo: el enunciado del ejercicio no los pide.
El enunciado es:
Define una clase Bombero considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), especialista (boolean). Define un constructor que reciba los parámetros necesarios para la inicialización y los métodos para poder establecer y obtener los valores de los atributos. Compila el código para comprobar que no presenta errores, crea un objeto y comprueba que se inicializa correctamente consultando el valor de sus atributos después de haber creado el objeto. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.
El incluir los métodos getters y setters es correcto, pero no sólo porque lo pida el ejercicio, sino porque es así como se programa normalmente en java.
No es correcto decir que "ya estamos usando un contructor con parametros y esta haciendo el trabajo de los Setters".
Cada cosa tiene un fin distinto:
El constructor -- > sirve para darle unos valores iniciales a los atributos del objeto. Por ejemplo puedes crear un objeto Taxi donde el número de pasajeros inicial sea 3 establecido a través del constructor.
Los métodos setters -- > sirven para establecer un valor de atributos en cualquier momento. Imagina que del taxi se baja una persona. Entoces usaríamos el método setter para establecer que el número de pasajeros ahora es 2.
Por tanto normalmente se incluyen constructores, getters y setters, tener un constructor con parámetros no reemplaza a los getters ni a los setters. Ten en cuenta que si no tuvieras setters un objeto no podría cambiar, siempre quedaría tal y como fue creado inicialmente.
Saludos!
-
Hola
Aquí está mi código, pero me quedé en la parte donde solicitaban "crea un objeto y comprueba que se inicializa correctamente consultando el valor de sus atributos después de haber creado el objeto"
public class Bombero {
String v_nombre;
String v_apellido;
int v_edad;
boolean v_casado;
boolean v_especialista;
public Bombero( String vNombre, String vApellido, int vEdad, boolean vCasado, boolean vEspecialista){
v_nombre=vNombre;
v_apellido=vApellido;
v_edad=vEdad;
v_casado=vCasado;
v_especialista=vEspecialista;
}
public void setNombre (String vNombre){v_nombre=vNombre; }
public void setApellido(String vApellido){v_apellido=vApellido; }
public void setEdad (int vEdad){ v_edad=vEdad; }
public void setCasado (boolean vCasado){v_casado=vCasado;}
public void setEspecialista (boolean vEspecialista){ v_especialista=vEspecialista;}
public String getNombre (){ return v_nombre; }
public String getApellido(){ return v_apellido; }
public int getEdad (){ return v_edad; }
public boolean getCasado (){ return v_casado;}
public boolean getEspecialista (){ return v_especialista;}
public static void main(String[] args) {
}
}
-
Hola, el código está correcto. Para crear objetos e invocar sus métodos tienes que hacerlo con BlueJ tal y como se indica aquí: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=418:visualizar-clases-y-crear-objetos-java-con-bluej-invocar-metodos-diferencias-entre-clase-y-objeto-cu00620b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
Saludos
-
Hola, el código está correcto. Para crear objetos e invocar sus métodos tienes que hacerlo con BlueJ tal y como se indica aquí: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=418:visualizar-clases-y-crear-objetos-java-con-bluej-invocar-metodos-diferencias-entre-clase-y-objeto-cu00620b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
Saludos
Hola, los ejercicios los estoy realizando desde Netbeans.. Estoy tratando de crear el objeto de esta manera
public class Bombero {
String v_nombre;
String v_apellido;
int v_edad;
boolean v_casado;
boolean v_especialista;
public Bombero(String vNombre, String vApellido, int vEdad, boolean vCasado, boolean vEspecialista ){
v_nombre=vNombre;
v_apellido=vApellido;
v_edad=vEdad;
v_casado=vCasado;
v_especialista=vEspecialista;
}
public void setNombre (String vNombre){v_nombre=vNombre; }
public void setApellido(String vApellido){v_apellido=vApellido; }
public void setEdad (int vEdad){v_edad=vEdad; }
public void setCasado (boolean vCasado){v_casado=vCasado;}
public void setEspecialista (boolean vEspecialista){ v_especialista=vEspecialista;}
public String getNombre (){ return v_nombre; }
public String getApellido(){ return v_apellido; }
public int getEdad (){ return v_edad; }
public boolean getCasado (){ return v_casado;}
public boolean getEspecialista (){ return v_especialista;}
public static void main(String[] args) {
Bombero obj = new Bombero ();
obj.setNombre("Luis");
System.out.println(obj.getNombre());
}
}
Pero me sale este error
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - constructor Bombero in class bombero.Bombero cannot be applied to given types;
required: java.lang.String,java.lang.String,int,boolean,boolean
found: no arguments
reason: actual and formal argument lists differ in length
at bombero.Bombero.main(Bombero.java:43)
Incluso si le coloco los parámetros del constructor de esta manera
Bombero obj = new Bombero (String vNombre, String vApellido, int vEdad, boolean vCasado, boolean vEspecialista )
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous ctor sym type: <any>
-
Hola, el código está correcto. Para crear objetos e invocar sus métodos tienes que hacerlo con BlueJ tal y como se indica aquí: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=418:visualizar-clases-y-crear-objetos-java-con-bluej-invocar-metodos-diferencias-entre-clase-y-objeto-cu00620b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
Saludos
Hola, los ejercicios los estoy realizando desde Netbeans.. Estoy tratando de crear el objeto de esta manera
public class Bombero {
String v_nombre;
String v_apellido;
int v_edad;
boolean v_casado;
boolean v_especialista;
public Bombero(String vNombre, String vApellido, int vEdad, boolean vCasado, boolean vEspecialista ){
v_nombre=vNombre;
v_apellido=vApellido;
v_edad=vEdad;
v_casado=vCasado;
v_especialista=vEspecialista;
}
public void setNombre (String vNombre){v_nombre=vNombre; }
public void setApellido(String vApellido){v_apellido=vApellido; }
public void setEdad (int vEdad){v_edad=vEdad; }
public void setCasado (boolean vCasado){v_casado=vCasado;}
public void setEspecialista (boolean vEspecialista){ v_especialista=vEspecialista;}
public String getNombre (){ return v_nombre; }
public String getApellido(){ return v_apellido; }
public int getEdad (){ return v_edad; }
public boolean getCasado (){ return v_casado;}
public boolean getEspecialista (){ return v_especialista;}
public static void main(String[] args) {
Bombero obj = new Bombero ();
obj.setNombre("Luis");
System.out.println(obj.getNombre());
}
}
Pero me sale este error
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - constructor Bombero in class bombero.Bombero cannot be applied to given types;
required: java.lang.String,java.lang.String,int,boolean,boolean
found: no arguments
reason: actual and formal argument lists differ in length
at bombero.Bombero.main(Bombero.java:43)
Incluso si le coloco los parámetros del constructor de esta manera
Bombero obj = new Bombero (String vNombre, String vApellido, int vEdad, boolean vCasado, boolean vEspecialista )
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous ctor sym type: <any>
Ya vi donde estaba el error ??? jaja gracias de todas maneras
-
Hola a todos , incluyo mi humilde ejercicio aqui para no saturar con nuevos post , por si lo quereis corregir alguien , gracias y un abrazo.
//clase
public class Bombero
{
private String nombre ;
private String apellidos;
private int edad ;
private boolean casado ;
private boolean especialista ;
// constructor
public Bombero (String bNombre ,String bApellidos , int bEdad , boolean bCasado , boolean bEspecialista)
{
nombre = bNombre;
apellidos = bApellidos;
edad = bEdad;
casado = bCasado;
especialista = bEspecialista;
}
// fin de constructor
// procedimientos
public void setNombre (String vNombre)
{
nombre = vNombre;
}
public void setApellidos (String vApellidos)
{
apellidos = vApellidos;
}
public void setEdad(int vEdad)
{
edad = vEdad;
}
public void setCasado (boolean vCasado)
{
casado = vCasado;
}
public void setEspecialista (boolean vEspecialista)
{
especialista = vEspecialista;
}
//fin de procedimientos
// funciones
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;}
}
// fin de clase
-
Hola, tu ejercicio está perfecto, así que ánimo y adelante con el curso. Saludos,
-
Gracias Mario , la verdad es que sin vuestro apoyo ,yo al menos no , saldría adelante así que gracias a vosotros y un fuerte abrazo.