Foros aprenderaprogramar.com
		Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Pandemia en 07 de Octubre 2016, 22:25
		
			
			- 
				Buenas noches ahí va mi propuesta del ejercicio CU00681B del manual de fundamentos de programación Java.....
 
 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.
 
 
 
 /**
 * Ejercicio CU00681B del curso de java desde cero de aprenderaprogramar.com
 *
 * Clase 1: objeto TipoEnumerado con un tipo enumerado con varias marcas de vehículos
 * Esta clase define un objeto TipoEnumerado con varias marcas de vehículos.
 * @author  Pandemia
 * @version  05/10/2016/A
 */
 public class Vehiculo
 {
 enum MarcaDeVehiculo {FORD, TOYOTA, SUZUKI, RENAULT, SEAT};
 
 //Inicialización de laS variables en este caso las dos de tipo String
 private String matricula;
 private String marca;
 
 /**
 * CONSTRUCTOR
 * @param matricula define las matriculas de los vehículos de las marcas del tipo enumerado MarcaDeVehiculo.
 * @param marca define la marca de los vehículos del tipo enumerado MarcaDeVehiculo.
 */
 public Vehiculo (){
 matricula = "";
 marca = null;
 }//Cierre del constructor
 
 /**
 * Método para establecer la matricula del vehículo
 * @param valorMatricula el parámetro valorMatricula define el valor que contendrá la matricula del vehículo
 */
 public void setMatricula (String valorMatricula){
 matricula = valorMatricula;
 }//Cierre del método
 
 /**
 * Método para establecer la marca del vehículo
 * @param valorMarca el parámetro valorMarca define el valor que contendrá la matricula del vehículo
 */
 public void setMarca (MarcaDeVehiculo valorMarca) {
 marca = valorMarca.toString();
 } //Cierre del método
 
 /**
 * Método para obtener la matrícula del vehículo
 * @return La matrícula del vehículo
 */
 public String getMatricula(){ return matricula; }
 
 /**
 * Método para para obtener la Marca del Vehículo
 * @return La Marca del Vehículo
 */
 public String getMarca(){ return marca.toString();}
 
 
 Código de prueba
 
 /**
 * Ejercicio CU00681B del curso de java desde cero de aprenderaprogramar.com
 *
 * Clase2.Test para crear objeto vehículo con un tipo enumerado con varias marcas
 *
 * @author Pamdemia
 * @version 07/10/2016/A
 * Esta clase define un método test para provar el objeto vehículo
 */
 import java.util.Scanner; //Importamos la clase Scanner para introducir datos por teclado.
 public class TestVehiculoEnum
 {
 public static void main (String [ ] Args) {
 // Introducimos los campos de la clase y los inicializamos.
 String entradaTeclado = ""; //variable para contener la entrada por teclado
 boolean marcaOk = false; //variable que controla si es correcta la marca introducida
 
 //creo un objeto de la clase Vehiculo
 Vehiculo vehiculoTest = new Vehiculo();
 
 //Creo el objeto Scanner
 Scanner sc = new Scanner (System.in);
 
 //Limpiamos la pantalla de la consola
 System.out.println("\f");
 //mostramos mensaje de inicio
 System.out.println("Bienvenidos al programa, comenzamos con la creación del objeto de un vehículo.");
 
 //Se solicita la matricula del vehículo
 System.out.println("Introduzca la matrícula del vehículo: ");
 //Scanner para la entrada de teclado
 entradaTeclado = sc.nextLine();
 
 //llamada al método de la clase Vehiculo para coger el valor de la matricula
 vehiculoTest.setMatricula(entradaTeclado);
 
 // Bucle que se repite miesntras marcaOK = false. es decir, mientras no se introduzca una marca correcta
 do
 {
 //solicitamos la marca del vehículo
 System.out.print("Introduzca una de las siguientes Marcas de Vehiculo (Ford, Toyota, Suzuki, Renault, Seat): ");
 //Scanner para la entrada de teclado
 entradaTeclado = sc.nextLine();
 
 // Comprobación de que marca se introduce
 switch(entradaTeclado.toLowerCase()){
 case "ford":
 vehiculoTest.setMarca(Vehiculo.MarcaDeVehiculo.FORD);
 marcaOk = true;
 break;
 case "toyota":
 vehiculoTest.setMarca(Vehiculo.MarcaDeVehiculo.TOYOTA);
 marcaOk = true;
 break;
 case "suzuki":
 vehiculoTest.setMarca(Vehiculo.MarcaDeVehiculo.SUZUKI);
 marcaOk = true;
 break;
 case "renault":
 vehiculoTest.setMarca(Vehiculo.MarcaDeVehiculo.RENAULT);
 marcaOk = true;
 break;
 case "seat":
 vehiculoTest.setMarca(Vehiculo.MarcaDeVehiculo.SEAT);
 marcaOk = true;
 break;
 default: System.out.println("ERROR EN LA INTRODUCCIÓN DE LA MARCA");
 }
 } while (marcaOk == false);
 //Mostramos por pantalla los atributos del objeto Vehiculo
 System.out.println("Los Datos del Vehiculo son: ");
 System.out.println("Matrícula: " + vehiculoTest.getMatricula());
 System.out.println("Marca: " + vehiculoTest.getMarca());
 }//Cierre del main
 }//Cierre de la clase
 
 Saludos y gracias por vuestro tiempo..... ;D
- 
				Buenas Pandemia hay una cosa que no veo bien. 
 
 El atributo marca lo declaras private String marca;
 
 ¿Por qué lo declaras String si debe ser tipo MarcaDeVehiculo como dice el ejercicio?
 
 En getMarca tienes
 
 public String getMarca(){ return marca.toString();}
 
 Aquí debería trabajarse con el tipo MarcaDeVehiculo en lugar de con String y así sucesivamente
 
 Lee el hilo https://www.aprenderaprogramar.com/foros/index.php?topic=3140.0 y los comentarios y trata de corregir el ejercicio
 
 Salu2
- 
				buenas,
 
 Usando el case que hizo pandemia y teniendo en consideración que el setter Marca tiene que ser del tipo enum iniciado, lo hice de la siguiente forma:
 
 class Vehiculo{
 enum MarcaDeVehiculo{FORD,TOYOTA,SUZUKI,RENAULT,SEA};
 String Matricula;
 MarcaDeVehiculo Marca;
 //Getters
 public MarcaDeVehiculo getMarca(){return Marca;}
 public String getMatricula(){return Matricula;}
 //Setters
 public void setMatricula(String Matricula){this.Matricula=Matricula;}
 public void setMarca(MarcaDeVehiculo Marca){this.Marca=Marca;}
 }
 
 import java.util.Scanner;
 
 class TestVehiculo{
 
 public static void main(String[]args){
 Scanner entrada = new Scanner(System.in);
 Vehiculo vehiculo = new Vehiculo();
 
 System.out.print("Agregue Matricula: ");
 vehiculo.setMatricula(entrada.nextLine());
 
 System.out.print("\n Agregue Marca (FORD,TOYOTA,SUZUKI,RENAULT,SEA): ");
 switch(entrada.nextLine()){
 case "ford":
 vehiculo.setMarca(vehiculo.getMarca().FORD);
 break;
 case "toyota":
 vehiculo.setMarca(vehiculo.getMarca().TOYOTA);
 break;
 case "suzuki":
 vehiculo.setMarca(vehiculo.getMarca().SUZUKI);
 break;
 case "renault":
 vehiculo.setMarca(vehiculo.getMarca().RENAULT);
 break;
 case "sea":
 vehiculo.setMarca(vehiculo.getMarca().SEA);
 }
 System.out.println("El vehiculo agregado tiene:\n Matricula:"
 +(vehiculo.getMatricula())+"\n Marca:"+(vehiculo.getMarca()));
 }
 }
 
 Espero asi sirva.
 
 Saludos.
 
 
- 
				Buenas saduj93 tu ejercicio está bien resuelto. Ten en cuenta que para plantear una solución a un ejercicio es preferible abrir un nuevo hilo en el foro, en lugar de responder sobre un hilo ya iniciado. Puedes ver las indicaciones generales para escribir en los foros en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0
 
 Salu2