Tipos enumerados en java
Cual serĂa la mejor forma de definir un tipo enumerado en java, p.e, queremos un tipo que solo pueda tener los siguientes valores = {lunes, martes, miercoles, jueves, viernes, sabado, domingo} ?
Gracias
Gracias
La forma más sencilla serĂa meterlo en un array de strings.
String dias []={"lunes","martes",...,"Domingo"};
Y una forma más sofisticada es crearte una clase´.
Creandote los métodos que sean más convenientes.
En el ejemplo que te pongo la clase dia tiene dos constructores y un par de mĂ©todos. Uno que te pasa al dĂa siguiente el valor del dĂa actual que tiene el objeto y otro que te imprime en la pantalla el valor que tiene actualmente.
Espero que esto te ayude en algo. Lo cierto es que se te pueden ocurrir otras maneras de hacerlo, que las hay, depende de lo que quieras hacer después.
class dia {
String hoyEs= "";
String diasSemana [] = {"lunes","martes","miercoles","jueves","viernes","sabado","domingo"};
// constructor con un par metro tipo entero
dia (int numero) {
hoyEs = diasSemana[numero-1];
}
// constructor con un parametro tipo cadena
dia (String dato) {
hoyEs = dato;
}
String siguiente () {
int t = 0;
while (!hoyEs.equalsIgnoreCase(diasSemana[t++])){;}
if (t == 7) { t = 0; }
return (hoyEs = diasSemana[t]);
}
void imprimeDia () {
System.out.println ("El d¡a actual es: " + hoyEs);
}
}
class dias {
public static void main (String args[]) {
dia Objeto1 = new dia("Miercoles");
dia Objeto2 = new dia(1);
dia Objeto3 = new dia(7);
dia Objeto4 = new dia("sabado");
Objeto1.siguiente();
Objeto1.imprimeDia(); // imprime jueves
Objeto2.imprimeDia(); // imprime lunes
Objeto2.siguiente();
Objeto2.imprimeDia(); // imprime martes
Objeto3.siguiente();
Objeto3.imprimeDia(); // imprime lunes
Objeto4.siguiente();
Objeto4.siguiente();
Objeto4.siguiente();
Objeto4.siguiente();
Objeto4.imprimeDia(); // imprime miercoles
}
}
Si quieres compilar este ejemplo, crea un fichero de texto llamado dias.java con todo el cĂłdigo y compila con: javac dias.java. No con dia.java
Un saludo.
String dias []={"lunes","martes",...,"Domingo"};
Y una forma más sofisticada es crearte una clase´.
Creandote los métodos que sean más convenientes.
En el ejemplo que te pongo la clase dia tiene dos constructores y un par de mĂ©todos. Uno que te pasa al dĂa siguiente el valor del dĂa actual que tiene el objeto y otro que te imprime en la pantalla el valor que tiene actualmente.
Espero que esto te ayude en algo. Lo cierto es que se te pueden ocurrir otras maneras de hacerlo, que las hay, depende de lo que quieras hacer después.
class dia {
String hoyEs= "";
String diasSemana [] = {"lunes","martes","miercoles","jueves","viernes","sabado","domingo"};
// constructor con un par metro tipo entero
dia (int numero) {
hoyEs = diasSemana[numero-1];
}
// constructor con un parametro tipo cadena
dia (String dato) {
hoyEs = dato;
}
String siguiente () {
int t = 0;
while (!hoyEs.equalsIgnoreCase(diasSemana[t++])){;}
if (t == 7) { t = 0; }
return (hoyEs = diasSemana[t]);
}
void imprimeDia () {
System.out.println ("El d¡a actual es: " + hoyEs);
}
}
class dias {
public static void main (String args[]) {
dia Objeto1 = new dia("Miercoles");
dia Objeto2 = new dia(1);
dia Objeto3 = new dia(7);
dia Objeto4 = new dia("sabado");
Objeto1.siguiente();
Objeto1.imprimeDia(); // imprime jueves
Objeto2.imprimeDia(); // imprime lunes
Objeto2.siguiente();
Objeto2.imprimeDia(); // imprime martes
Objeto3.siguiente();
Objeto3.imprimeDia(); // imprime lunes
Objeto4.siguiente();
Objeto4.siguiente();
Objeto4.siguiente();
Objeto4.siguiente();
Objeto4.imprimeDia(); // imprime miercoles
}
}
Si quieres compilar este ejemplo, crea un fichero de texto llamado dias.java con todo el cĂłdigo y compila con: javac dias.java. No con dia.java
Un saludo.
