Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: fedegaray en 22 de Abril 2015, 13:45
-
Bueno, si que me han hecho estudiar con este pequeño ejercicio. Finalmente encontré la método valueOf() para poder pasar el valor del String ingresado via Scanner y transformarlo en un tipo enum.
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.
Es correcta la forma en que lo resolví o hay una manera más elegante?
Aquí mi respuesta:
Clase MarcaDeVehiculo
public enum MarcaDeVehiculo {FORD, TOYOTA, SUZUKI, RENAULT, SEAT};
Clase Vehiculo
public class Vehiculo {
private String matricula;
private MarcaDeVehiculo marca;
public Vehiculo () {
matricula = "";
marca = null;
}
public Vehiculo (String valorMatricula, MarcaDeVehiculo valorMarca) {
matricula = valorMatricula;
marca = valorMarca;
}
public void setMatricula (String valorMatricula) {
matricula = valorMatricula;
}
public void setMarca (MarcaDeVehiculo valorMarca) {
marca = valorMarca;
}
public String getMatricula () {
return matricula;
}
public MarcaDeVehiculo getMarca () {
return marca;
}
}
Clase TestVehiculo
import java.util.Scanner;
public class TestVehiculo {
public static void main (String [] args) {
Vehiculo nuevoVehiculo = new Vehiculo ();
System.out.println ("Ingrese la matrícula del vehículo... ");
Scanner entrada = new Scanner (System.in);
nuevoVehiculo.setMatricula(entrada.nextLine());
System.out.println ("Escriba cúal de las siguientes marcas se corresponde a la del vehículo...");
System.out.println ("FORD, TOYOTA, SUZUKI, RENAULT, SEAT");
Scanner entrada2 = new Scanner (System.in);
String marcaIngresada = entrada2.nextLine();
MarcaDeVehiculo esteAuto = MarcaDeVehiculo.valueOf(marcaIngresada);
nuevoVehiculo.setMarca (esteAuto);
System.out.println ("La matrícula es: " + nuevoVehiculo.getMatricula());
System.out.println ("La marca del vehículo es: " + nuevoVehiculo.getMarca());
}
}
-
Hola fedegaray el código está bien resuelto
Has aplicado bien valueof y es interesante para otras personas ver este uso
Scanner entrada2 = new Scanner (System.in);
String marcaIngresada = entrada2.nextLine();
MarcaDeVehiculo esteAuto = MarcaDeVehiculo.valueOf(marcaIngresada);
nuevoVehiculo.setMarca (esteAuto);
En la primera línea un String se transforma en el tipo enumerado, y en la segunda línea se usa el tipo enumerado para establecer un atributo para el objeto nuevoVehiculo. Buen ejemplo de aplicación.
Saludos
-
Qué bueno que la investigación haya dado resultado! Valió la pena! muchas gracias!!