Vous êtes sur la page 1sur 4

Enumeración(enum):

Aspectos teóricos:

Por que el constructor de enum Talla esta en private?

Debido a que en la enumeración no admiten la creación de objetos, no podemos invocar a


un constructor creando como si fuera una instancia perteneciente a la clase enumerada, en
otras palabras no podemos hacer (Talla mi_talla= new Talla);
Por esto el constructor debe estar en private para que desde código externo no podamos
invocar al constructor o sea no podamos crear instancias.

Ejemplo
import java.util;
public class Uso_tallas{
enum Talla{
private String abreviatura;
private Talla(String abreviatura){
this.abreviatura=abreviatura;
}
public String dameAbreviatura(){
return abreviatura;//////este geter debe estar en public

}
MINI(“S”), MEDIANO(“M”),GRANDE(“L”), MUY_GRANDE(“XL”);
}
public static void main(String[] args){

Scanner entrada=new Scanner(System.in);


System.out.println(“Escribe talla: MINI ,MEDIANO, GRANDE,
MUY_GRANDE”);
String entrada_datos=entrada.next().toUpperCase();
Talla la_talla=Enum.valueof(Talla.class, entrada_datos);////método estatico de
la clase enum que devuelve el nombre de la constante enumerada cuyos argumentos son:la
clase a la que pertenece y lo introducido por el usuario respectivamente, lo que hace es que
busca el tipo pertenece el string introducido.
System.out.println(“Talla=” + la_talla);
System.out.println(“Abreviatura=” + la_talla.dameAbrebiatura());
}

}
Veamos otro ejemplo:
ENUM PARA DEMARCACION

public enum Demarcacion


{
PORTERO, DEFENSA, CENTROCAMPISTA, DELANTERO
}
Las clases enum heredan de enum(java.lang.Enum) y este proporciona metodos como:

Demarcacion delantero = Demarcacion.DELANTERO; // Instancia de un enum


de la clase Demarcación
delantero.name(); // Devuelve un String con el nombre de la constante
(DELANTERO)
delantero.toString(); // Devuelve un String con el nombre de la
constante (DELANTERO)
delantero.ordinal(); // Devuelve un entero con la posición del enum
según está declarada (3).
delantero.compareTo(Enum otro); // Compara el enum con el parámetro
según el orden en el que están declarados lo enum
Demarcacion.values(); // Devuelve un array que contiene todos los enum

ENUM PARA EQUIPO


public enum Equipo
{
BARÇA("FC Barcelona",1), REAL_MADRID("Real Madrid",2),
SEVILLA("Sevilla FC",4), VILLAREAL("Villareal",7);

private String nombreClub;


private int puestoLiga;

private Equipo (String nombreClub, int puestoLiga){


this.nombreClub = nombreClub;
this.puestoLiga = puestoLiga;
}

public String getNombreClub() {


return nombreClub;
}

public int getPuestoLiga() {


return puestoLiga;
}

Creando clase futbolista……………………..

package Main;

public class Futbolista {

private int dorsal;


private String Nombre;
private Demarcacion demarcacion;
private Equipo equipo;

public Futbolista() {
}

public Futbolista(String nombre, int dorsal, Demarcacion demarcacion, Equipo


equipo) {
this.dorsal = dorsal;
Nombre = nombre;
this.demarcacion = demarcacion;
this.equipo = equipo;
}

// Metodos getter y setter

................................

@Override
public String toString() {
return this.dorsal + " - " + this.Nombre + " - " + this.demarcacion.name() + " - "
+ this.equipo.getNombreClub();///El programa solo ejecuta esto
}
}

Dada la clase ya podemos crear objetos:--------------------------


Futbolista casillas = new Futbolista("Casillas", 1, Demarcacion.PORTERO,
Equipo.REAL_MADRID);
Futbolista capdevila = new Futbolista("Capdevila", 11, Demarcacion.DEFENSA,
Equipo.VILLAREAL);
Futbolista iniesta = new Futbolista("Iniesta", 6, Demarcacion.CENTROCAMPISTA,
Equipo.BARÇA);
Futbolista navas = new Futbolista("Navas", 22, Demarcacion.DELANTERO,
Equipo.SEVILLA);

El resultado es:
1 - Casillas - PORTERO - Real Madrid
11 - Capdevila - DEFENSA - Villareal
6 - Iniesta - CENTROCAMPISTA - FC Barcelona
22 - Navas - DELANTERO - Sevilla FC

Vous aimerez peut-être aussi