Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Enzo en 16 de Noviembre 2015, 20:13
-
Hola,
Adjunto el ejercicio del tema "CU00681B ejemplo enum java tipos enumerados types must not be local" para su corrección:
Objeto Vehiculo:
// EJERCICIO DEL TIPO ENUMERADO
// ----> CU00681B ejemplo enum java tipos enumerados types must not be local.pdf
// clase 1. Objeto Vehículo con un tipo Enumerado con varias marcas.
/**
* Esta clase define un Objeto Vehículo con un tipo Enumerado con varias marcas.<br>
* Ejercicio del Tema "CU00681B ejemplo enum java tipos enumerados types must not be local"
* @author: Lorenzo Fernández Asensio
* @version: 20151116.01
*/
public class Vehiculo_CU00681B {
// Declaración de un Tipo Enumerado
enum MarcaDeVehiculo { FORD, TOYOTA, SUZUKI, RENAULT, SEAT };
// Inicialización de Variables
private String matricula; // matrícula (tipo String)
private MarcaDeVehiculo marca; // marca (tipo MarcaDeVehículo)
/**
* Constructor del Vehículo
* @param matricula El parámetro matricula define la Matrícula del Vehículo
* @param marca El parámetro marca define la Marca del Vehículo
*/
public Vehiculo_CU00681B () {
matricula = "";
marca = null;
}//Cierre del constructor
/**
* Método para establecer la Matrícula del Vehículo
* @param valorMatricula El parámetro valorMatricula define el valor que contendrá la matrícula del Vehículo
*/
public void setMatricula (String valorMatricula) {
matricula = valorMatricula;
} //Cierre del método para establecer la matrícula del Vehículo
/**
* Método para establecer la Marca del Vehículo
* @param valorMarca El parámetro valorMatricula define el valor que contendrá la Marca del Vehículo
*/
public void setMarca (MarcaDeVehiculo valorMarca) {
marca = valorMarca;
} //Cierre del método para establecer la matrícula del Vehículo
/**
* Método para 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 MarcaDeVehiculo getMarca(){ return marca; }
} // Cierre de la clase
Test de Prueba:
// EJERCICIO DEL TIPO ENUMERADO
// ----> CU00681B ejemplo enum java tipos enumerados types must not be local.pdf
// clase 2. Test para crear Objeto Vehículo con un tipo Enumerado con varias marcas.
/**
* Esta clase define un Test para probar el Objeto Vehiculo_CU00681B.<br>
* Ejercicio del Tema "CU00681B ejemplo enum java tipos enumerados types must not be local"
* @author: Lorenzo Fernández Asensio
* @version: 20151116.01
*/
import java.util.Scanner; //Importación de la clase Scanner para intro valores por teclado
public class TestVehiculoTEnum_CU00681B {
public static void main (String [ ] Args) {
// Campos de la clase
// Inicialización de una variable para contener la entrada por teclado
String entradaTeclado = "";
// Inicialización de una variable que controla si es correcta la marca introduccida
boolean marcaIntroOK = false;
// Se crea un objeto de la clase Vehículo_CU00681B
Vehiculo_CU00681B vehiculoMain = new Vehiculo_CU00681B();
//Creación deL objeto Scanner
Scanner entradaEscaner = new Scanner (System.in);
// Se limpia la pantalla de la Consola
System.out.println("\f");
// Se muestra en pantalla un mensaje de incio
System.out.println("Hola. Comenzamos la creación de un Objeto de un Vehículo.");
// Se Solicita la matrícula del Vehículo
System.out.print("Introduzca la Matrícula del Vehiculo: ");
// Invocación un método sobre un objeto Scanner para coger la matrícula introducida por teclado
entradaTeclado = entradaEscaner.nextLine ();
// Se realiza el llamamiento al método de la clase Vehiculo_CU00681B para recoger el valor de la Matrícula
vehiculoMain.setMatricula(entradaTeclado);
// Bucle que se repite miesntras marcaIntroOK = false. es decir, mientras no se introduzca una marca correcta
do {
// Se Solicita la marca del Vehículo
System.out.print("Introduzca una de las siguientes Marcas de Vehiculo (Ford, Toyota, Suzuki, Renault, Seat): ");
// Invocación un método sobre un objeto Scanner para coger la matrícula introducida por teclado
entradaTeclado = entradaEscaner.nextLine ();
// Comprobación de que marca se introduce
// Y se realiza el llamamiento al método de la clase Vehiculo_CU00681B para recoger el valor de la Marca
switch(entradaTeclado.toLowerCase()){
case "ford":
vehiculoMain.setMarca(Vehiculo_CU00681B.MarcaDeVehiculo.FORD);
marcaIntroOK = true;
break;
case "toyota":
vehiculoMain.setMarca(Vehiculo_CU00681B.MarcaDeVehiculo.TOYOTA);
marcaIntroOK = true;
break;
case "suzuki":
vehiculoMain.setMarca(Vehiculo_CU00681B.MarcaDeVehiculo.SUZUKI);
marcaIntroOK = true;
break;
case "renault":
vehiculoMain.setMarca(Vehiculo_CU00681B.MarcaDeVehiculo.RENAULT);
marcaIntroOK = true;
break;
case "seat":
vehiculoMain.setMarca(Vehiculo_CU00681B.MarcaDeVehiculo.SEAT);
marcaIntroOK = true;
break;
default: System.out.println("ERROR EN LA INTRODUCCIÓN DE LA MARCA");
}
} while (marcaIntroOK == false);
// Se muestran en pantalla los atributos del Objeto Vehículo
System.out.println("Los Datos del Vehiculo son: ");
System.out.println("Matrícula: " + vehiculoMain.getMatricula());
System.out.println("Marca: " + vehiculoMain.getMarca());
} // Fin del Main
} // Fin de la Clase
Y tengo una duda. Cuando genero la documentación del Test no me sale el comentario inicial. Por favor, ¿podríais decirme a que es debido?
Porque por mas vueltas que le he dado no encuentro la razón.
Espero vuestros comentarios,
Muchas Gracias,
Saludos,
-
Hola Enzo. El ejercicio lo veo bien resuelto. Como siempre destacar tus buenos comentarios.
El comentario inicial no te aparece en la documentación porque tienes que situarlo justo antes de donde empieza la clase, es decir, justo antes de esta linea:
public class TestVehiculoTEnum_CU00681B {
Saludos.
-
Hola Pedro,
OK. Ya lo he cambiado.
Al realizar el cambio me he dado cuenta de otro error que tenia:
Había puesto dos puntos [:] después de "@author" y "@version" y seguían sin verse en la documentación. Una vez que lo he quitado todo funciona perfectamente.
Muchas Gracias,
Un Saludo,