Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: fedegaray en 22 de Abril 2015, 13:45

Título: Ejemplo valueof Java convertir un String en tipo enumerado Ejercicio CU00681B
Publicado 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.

Citar
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
Código: [Seleccionar]
public enum MarcaDeVehiculo {FORD, TOYOTA, SUZUKI, RENAULT, SEAT};
Clase Vehiculo
Código: [Seleccionar]
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

Código: [Seleccionar]
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());
    }
}
Título: Re:Ejemplo valueof Java convertir un String en tipo enumerado Ejercicio CU00681B
Publicado por: Mario R. Rancel en 24 de Abril 2015, 12:32
Hola fedegaray el código está bien resuelto

Has aplicado bien valueof y es interesante para otras personas ver este uso

Código: [Seleccionar]
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
Título: Re:Ejemplo valueof Java convertir un String en tipo enumerado Ejercicio CU00681B
Publicado por: fedegaray en 24 de Abril 2015, 21:26
Qué bueno que la investigación haya dado resultado! Valió la pena! muchas gracias!!