Tipos Enumerados con BlueJ - innova

Anuncio
Tipos Enumerados con BlueJ
Tipos Enumerados con BlueJ
Si necesitamos un grupo de valores constantes pero no está predefinido, podemos
usar el tipo enum.
También, el tipo enum es una alternativa sobre el uso tradicional de las constantes
public static.
Definir
Por ejemplo deseamos crear el tipo enum para utilizar los Rumbos que incluirá los
valores norte, sur, este y oeste, seguimos tres pasos:
Ahora sólo tenemos que incluir los valores norte, sur, este y oeste, para ello hacemos
doble clic en la clase Rumbos y luego escribimos los valores
Y luego compilamos.
Nótese que aunque escriba letras, NO utilizo las comillas (“) o el apóstrofo (‘)
Por Toni Peris. Tutor UNED Dénia
1/5
Tipos Enumerados con BlueJ
También puedo utilizar objetos en el tipo Enum. Por ejemplo si tengo un grupo de
electrodomésticos con sus medidas puedo crear una clase Enum que incluya el
constructor y algunos métodos para usarlos
Y compilamos
Nótese que al acabar con los objetos …frigo hay un (;)
Ahora algunos métodos más como el get y set para ver las medidas y cambiar las
medidas respectivamente.
Utilizar
Desde otra clase podemos utilizarlos de forma similar a otra clase pero siempre
anteponiendo el tipo y luego el valor. Por ejemplo: Rumbo.norte
 Como campo o atributo
Por Toni Peris. Tutor UNED Dénia
2/5
Tipos Enumerados con BlueJ

En condicionales y valores de variables

Posición que ocupa en la enumeración un determinado valor: en la definición
hemos enumerado los valores, internamente se asocia a una posición. Veamos la
posición en el ejemplo:
Se puede acceder a esta posición mediante el método ordinal()
Por ejemplo:
Nótese que comienza por la posición 1 y NO por la posición 0;
Por Toni Peris. Tutor UNED Dénia
3/5
Tipos Enumerados con BlueJ
Y ahora con los objetos con los enumerados:
Nótese que las posiciones del ordinal usando objetos empiezan por 0
Código completo
public enum Rumbos
{
norte,sur,este,oeste
}
public enum Electrodomesticos
{
lavadora(60,60,20), encimera(2,60,60), frigo(180,60,60);
private int alto;
private int profundidad;
private int ancho;
Electrodomesticos (int alto, int profundidad, int ancho){
this.alto=alto;
this.profundidad=profundidad;
this.ancho=ancho;
}
public int getAlto (){return this.alto;}
public int getProfundidad (){return this.profundidad;}
public int getAncho (){return this.ancho;}
public void setAlto (int alto){this.alto=alto;}
public void setProfundidad (int profundidad){this.profundidad=profundidad;}
public void setAncho (int ancho){this.ancho=ancho;}
}
Por Toni Peris. Tutor UNED Dénia
4/5
Tipos Enumerados con BlueJ
public class Uso
{
public static void main(String[] args) {
//definición
Rumbos miRumbo = Rumbos.sur;
//impresión
System.out.println (miRumbo);
//condicionales
if (miRumbo == Rumbos.norte){
System.out.println ("Voy al Norte");
}
switch (miRumbo){
case norte:
System.out.println ("Voy al Norte");
break;
case sur:
System.out.println ("Voy al Sur");
break;
case este:
System.out.println ("Voy al Este");
break;
case oeste:
System.out.println ("Voy al Oeste");
break;
default:
System.out.println ("Sin rumbo conocido");
}
//imprime la posición del valor de la variable MiRumbo
System.out.println (miRumbo.ordinal());
// imprime 1
//definición
Electrodomesticos miFrigo=Electrodomesticos.frigo;
//impresión
System.out.println (miFrigo);
//condicionales
if (miFrigo.getAncho()== 60){
System.out.println ("Mide 60 de ancho");
}
switch (miFrigo.getAlto()){
case 10:
System.out.println ("mide de alto 10");
break;
case 40:
System.out.println ("mide de alto 40");
break;
default:
System.out.println ("Otra medida");
}
//imprime la posición del valor de la variable
System.out.println ("frigo "+miFrigo.ordinal());
// imprime 2
}
}
//imprime la posición del valor de la variable
Electrodomesticos miLavadora;
miLavadora =Electrodomesticos.lavadora;
System.out.println ("lavadora "+miLavadora.ordinal());
// imprime 0
Por Toni Peris. Tutor UNED Dénia
5/5
Descargar