Autor Tema: Ejercicio resuelto tipos Enum (enumerados) en Java clase abono tipo de evento  (Leído 1467 veces)

Castillojose92

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Buenas a todos, tengo una situación que estoy completamente bloqueado, por lo que se ve es muy fácil pero ni hasta aquí llego.

El ejercicio me dice que cree una clase llamada Abono y que introduzca una serie de datos:

Nombre, Apellidos, Dni, números de recargas  de ese Abono y mi gran duda el tipo de evento para el que es el abono que puede ser cine, teatro o concierto.

Ese tipo de evento se debe añadir utilizando un tipo enumerado y no tengo ni idea de como iniciarlo(creo que lo hice), ni como puedo modificarlo eligiendo otra opción de las dicha arriba, como por ejemplo cambiar cine por teatro desde fuera. Adjunto
codigo.

 
Código: [Seleccionar]
/**
 * Escribe la descripción de la clase Abono.
 * Practica Etapa 1
 * Almacena altas de nuevos abonos y nos permite recargar dichos abonos
 * @autor (José Luis Castillo Gallardo)
 * @version (versión 1.0)
 */
public class Abono
{
    // Nombre del nuevo abonado
    private String Nombre;
    // Apellido del nuevo abonado
    private String Apellidos;
    // DNI del abonado representado con letras y numero
    private String DNI;
    //Número de recargas realizadas, el alta cuenta como una recarga
    private int NumRecargas;
    //Evento elegido por el abonado para dicho abono
    private TEvento TipoEvento;
    //Fecha de caducidad de dicho abono
   
    /**
     * Constructor para el objeto Abono
     * @param Insertar Nombre
     * @param Insertar Apellido
     * @param Insertar DNI
     * @param NumRecargas
     * @param Tipoevento al que se va a asistir con este abono
     */
    public Abono(String insertaNombre, String insertaApellidos, String
    insertaDNI, int numRecargas, TEvento SeleccionaEvento)
    {
        Nombre = insertaNombre;
        Apellidos = insertaApellidos;
        DNI = insertaDNI;
        NumRecargas = 1;
        SeleccionaEvento = TipoEvento;
    }
   
    /**
     * Constructor de la clase abono sin parametros,para crear un objeto
     * sin datos
     */
    public Abono ()
    {
        Nombre = "insertaNombre";
        Apellidos = "insertaApellidos";
        DNI = "insertaDNI";
        NumRecargas = 1;
        TipoEvento = TEvento.CINE;
       
    }
   
    /**
     *
     */
    public TEvento getTipoEvento()
    {
        return TipoEvento;
    }
   
    /**
     *
     */
    public void setTipoEvento(TEvento TipoEvento)
    {
        TipoEvento = TEvento.CINE;
    }
« Última modificación: 19 de Junio 2022, 13:32 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 989
    • Ver Perfil
Re: Tipos Enum
« Respuesta #1 en: 07 de Abril 2022, 11:03 »
Hola.
Suponiendo que tu enum sea como este:
Código: [Seleccionar]
public enum TEvento {

CINE,TEATRO,CONCIERTO
}

Y cambiando en tu clase Abono el método para setear eventos de esta manera:
Código: [Seleccionar]
    public void setTipoEvento(TEvento TipoEvento)
    {
        this.TipoEvento = TipoEvento;
    }


Bien, la forma sencilla y rápida de cambiar el valor del enum en un objeto, es pedir al usuario que elija mediante un menú, y según lo que elija, seteamos el valor correspondiente desde el código.
Por ejemplo, si ejecutamos este código:
Código: [Seleccionar]
public class PruebaAbono {

public static void main(String[] args) {

Scanner teclado = new Scanner(System.in);
Abono abono = new Abono();

int opcion = -1;
while (opcion != 0) {
System.out.println("\nTipo de Evento actual: " + abono.getTipoEvento());
System.out.println("Escoja cambiar el Evento o terminar aplicacion.");
System.out.println("[1] - Cine");
System.out.println("[2] - Teatro");
System.out.println("[3] - Concierto");
System.out.println("[0] - TERMINAR");
System.out.print("Opcion: ");
opcion = Integer.parseInt(teclado.nextLine());

switch(opcion) {
case 0:
System.out.println("\n\tFIN DE PROGRAMA");
break;
case 1:
abono.setTipoEvento(TEvento.CINE);
break;
case 2:
abono.setTipoEvento(TEvento.TEATRO);
break;
case 3:
abono.setTipoEvento(TEvento.CONCIERTO);
break;
default:
System.out.println("Opcion equivocada");
}
}

teclado.close();
}

}

Veremos en pantalla que podemos cambiar el valor del enum a través de las opciones de un menú:
Citar
Tipo de Evento actual: CINE
Escoja cambiar el Evento o terminar aplicacion.
[1] - Cine
[2] - Teatro
[3] - Concierto
[0] - TERMINAR
Opcion: 2

Tipo de Evento actual: TEATRO
Escoja cambiar el Evento o terminar aplicacion.
[1] - Cine
[2] - Teatro
[3] - Concierto
[0] - TERMINAR
Opcion: 3

Tipo de Evento actual: CONCIERTO
Escoja cambiar el Evento o terminar aplicacion.
[1] - Cine
[2] - Teatro
[3] - Concierto
[0] - TERMINAR
Opcion: 1

Tipo de Evento actual: CINE
Escoja cambiar el Evento o terminar aplicacion.
[1] - Cine
[2] - Teatro
[3] - Concierto
[0] - TERMINAR
Opcion: 0

   FIN DE PROGRAMA


Como ves, pidiendo al usuario que introduzca simplemente un número entre 1 y 3, ya podemos cambiar el valor del enum y no hay por qué complicarse más la vida.

Espero haber resuelto tu duda.
Saludos.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

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".