Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Enzo en 16 de Noviembre 2015, 20:13

Título: Ejercicio CU00681B ejemplo enum java tipos enumerados types must not be local
Publicado 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:
Código: [Seleccionar]
// 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:
Código: [Seleccionar]
// 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,
Título: Re:Ejercicio CU00681B ejemplo enum java tipos enumerados types must not be local
Publicado por: pedro,, en 17 de Noviembre 2015, 23:33
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:

Código: [Seleccionar]
public class TestVehiculoTEnum_CU00681B {
Saludos.
Título: Re:Ejercicio CU00681B ejemplo enum java tipos enumerados types must not be local
Publicado por: Enzo en 18 de Noviembre 2015, 13:03
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,