Autor Tema: Método name() en tipos enumerados Java obtener texto del enum CU00681B  (Leído 3219 veces)

ronal.d87

  • Principiante
  • **
  • Mensajes: 72
    • Ver Perfil
Hola buenas noches, he aquí el desarrollo del código....me resulto bastante dificil el desarrollo del mismo pero bueno...espero observaciones al respecto....


Clase Vehiculo

Código: [Seleccionar]
package ejemplo;

import java.util.Scanner;

/**
 * @author Ronald Mosquera
 * @version 1.0
 */
public class Vehiculo {
   
    String matricula;   
    public MarcaDeVehiculo marca;
    boolean condicion;
    Scanner sc;
   
//metodo constructor
    public Vehiculo (){
        matricula = "";
        condicion = false;
        sc = new Scanner(System.in);
    }   
    //  metodo tipo enumerado     
    public enum MarcaDeVehiculo{
        FORD, TOYOTA, SUZUKI, RENAULT, SEAT
    }
   
    /**
     * Metodo recibe el dato para establecer la marca del carro
     * @param valorMarca El parametro valorAsoluto calcula
     *
     */
   
    public void setMarca(MarcaDeVehiculo valorMarca){
        marca = valorMarca;
        switch(marca){
           
            case FORD:
                marca.FORD.name();
                break;
            case TOYOTA:
                marca.TOYOTA.name();
                break;
            case SUZUKI:
                marca.SUZUKI.name();
                break;
            case RENAULT:
                marca.RENAULT.name();
                break;
            case SEAT: marca.SEAT.name();
                break;
               
            default:
                //no genera el error cuando ingreso un valor que no esta en el enum
                System.err.println("Ingreso el valor "+marca+" Este no se encuentra en el enumerado");
                break;
        }
    } 
    /**
     * Metodo que recibe un valor String para establecer la matricula del vehiculo
     * @param valorMatricula El parametro valorAsoluto calcula
     
     */
   
    public void setMatricula(String valorMatricula){
        matricula = valorMatricula;
    }
    /**
     * Metodo que devuelve la marca del vehiculo
     * @return la marca de un vehiculo
     */
   
    public String getMarca(){
        return marca.name();
    }   
    /**
     * Metodo que devuelve la matricula del vehiculo
     * @return la matricula de un vehiculo
     */
   
    public String getMatricula (){
        return matricula;
    }
}


Clase TestEnumerado

Código: [Seleccionar]

package ejemplo;

import ejemplo.Vehiculo.MarcaDeVehiculo;
import java.util.Scanner;

/**
 *
 * @author Ronald Mosquera
 */
public class TestEnumerado {
       
    public static void main(String[] args){

        MarcaDeVehiculo marVehi = null ;
        Vehiculo vehiculo = new Vehiculo();
        Scanner sc = new Scanner(System.in);
        String captura = "";
       
        System.out.println("ingrese la referencia del vehiculo que desea\n"
                + "FORD, TOYOTA, SUZUKI, RENAULT, SEAT");       
       
        marVehi = MarcaDeVehiculo.valueOf(sc.next().toUpperCase());       
        vehiculo.setMarca(marVehi);
       
        captura = sc.nextLine();
       
        System.out.println("ingrese la matricula del vehiculo");
        captura = sc.nextLine();
        vehiculo.setMatricula(captura);
   
        System.out.println("El vehiculo es de marca "+vehiculo.getMarca()+" la matricula es "+vehiculo.getMatricula());
    }
}

« Última modificación: 30 de Julio 2015, 18:13 por Alex Rodríguez »
Ronald Mosquera Mancilla

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Re:EJERCICIO CU00681B REALIZADO
« Respuesta #1 en: 30 de Julio 2015, 10:44 »
Buenas Ronal, en principio el ejercicio esta ok, comentarte dos cosas,

1- boolean condicion, lo inicias en false en el constructor y no lo usas más, teniendo en cuenta que es un atributo de clase, o le haces un getter por si pensaste en algo o si no lo usas lo quitaria.

2- el nombre de las variables debe ser claro para el que lo lea "condicion" es muy generico, que condicion va a cumplir ese boolean (o otra variable).
Seria mas logico boolean objetoCreado; o algo así indicando un poco que va a hacer.

El resto lo veo correcto,  bien el case, me gusta lo de usar name() de los enum, es una función deduzco que retorna el propio nombre, no la conocia hasta ahora :)

Sigue así.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".