Buenos días,
EJERCICIO
Crea una clase Vehiculo donde definas un tipo enumerado MarcaDeVehiculo cuyos valores posibles serán FORD, TOYOTA, SUZUKI, RENAULT, SEAT. Establece como atributos de la clase matricula (tipo String) y marca (tipo MarcaDeVehiculo) y crea los métodos getters (para obtener) y setters (para establecer el valor) de los atributos. Escribe un pequeño programa de prueba donde verifiques que los métodos funcionan correctamente. Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.
He realizado el siguiente código:
enum MarcaDeVehiculo{FORD,TOYOTA,SUZUKI,RENAULT,SEAT};
public class Vehiculo
{
private String matricula;
private MarcaDeVehiculo marca;
public Vehiculo(){
matricula="";
setMarca();
}
public void setMarca(){
String texto = "";
System.out.println("Por favor introduzca la marca del vehículo, debe ser [Ford, Toyota, Suzuki, Renault, Seat] en minúsculas.");
Scanner entradaTeclado = new Scanner(System.in);
texto = entradaTeclado.nextLine();
if(texto.equals("ford")){
marca = MarcaDeVehiculo.FORD;
}
else if(texto.equals("toyota")){
marca = MarcaDeVehiculo.TOYOTA;
}
else if(texto.equals("suzuki")){
marca = MarcaDeVehiculo.SUZUKI;
}
else if(texto.equals("renault")){
marca = MarcaDeVehiculo.RENAULT;
}
else if(texto.equals("seat")){
marca = MarcaDeVehiculo.SEAT;
}
else{
System.out.println("No ha introducido una marca válida para el vehículo.");
}
}
public void setMatricula(String valorMatricula){
matricula = valorMatricula;
}
public MarcaDeVehiculo getMarca(){
return marca;
}
public String getMatricula(){
return matricula;
}
}
No he sabido establecer un valor a marca en el constructor(no quería asignar un valor de los que aparecen en la lista de tipo enum) por lo que he puesto una llamada al setter de marca. No se si es correcto realizar un setter sin ningún parámetro y tampoco se si es muy adecuado realizar los condicionales tal que así.
El código para la prueba es el siguiente:
public class TestVehiculo
{
public static void main(String[] args){
Vehiculo nuevoVehiculo = new Vehiculo();
String valorMatricula = "MXC-1234-E";
nuevoVehiculo.setMatricula(valorMatricula);
System.out.println("La marca del vehículo es: "+nuevoVehiculo.getMarca());
System.out.println("La matrícula del vehículo es: "+nuevoVehiculo.getMatricula());
nuevoVehiculo.setMarca();
System.out.println("La nueva marca del vehículo es: "+nuevoVehiculo.getMarca());
}
}
Muchas gracias, atentamente.