BOA TARDE GALERA !
Estou com uma dúvida aqui:
public class Test {
public enum Dogs { collie, harrier };
public static void main(String[] args) {
Dogs myDog = Dogs.collie;
switch (myDog) {
case collie:
System.out.print("collie ");
case harrier:
System.out.print("harrier ");
}
}
}
Porque enum Dogs pode ser acessada no main :roll: ?!
Ela não é um componente de instância não :roll: !?
Grato !!
Um enum é uma classe. Esse código é mais ou menos equivalente a isso aqui:
[code]public class Test {
public class Dogs {
public static final Dogs collie = new Dogs();
public static final Dogs harrier = new Dogs();
}
public static void main(String[] args) {
Dogs myDog = Dogs.collie;
switch (myDog) {
case collie:
System.out.print("collie ");
case harrier:
System.out.print("harrier ");
}
}
}
[/code]
Agora, a melhor maneira de reescrever esse código seria se aproveitar do fato que o enum é uma classe e usar o Polimorfismo:
[code]public class Test {
public enum Dogs {
collie(“collie”),
harrier(“harrier”);
private String description;
public Dogs(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
}
public static void main(String[] args) {
Dogs myDog = Dogs.collie;
System.out.print(myDog.getDescription() + " ");
}
}
[/code]