ae pessoal ontem estudando o livro da kathy me deparei uma situação que me confudiu no uso do == e metodo equals()… veja a sintaxe…
class EnumEqual{
enum Color { RED, AZUL};
enum Car{ CELTA, BMW};
public static void main(String [] ags){
Color c = Color.RED;
Color c2 = Color.AZUL;
Color c3=c;
Car ca = Car.CELTA;
Car bw = Car.BMW;
Car carr = ca;
if(c==c3){System.out.println("==");}
if(ca.equals(carr)){System.out.println("equals Enum Car");}
}
}
/* qdo quiser comparara referencia de um tipo ==
qdo quiser comparar se dois objeto sao iguais equals()*/
/*o que pude entender aqui que enum nao sao objetos eh um tipo de
variavel que posso comparar com referencia semelhante a comparar se
Moto m = new Moto(); Moto mt = new Moto();
entao no exemplo acima to comparando se as varaiaveis enum referencia a outra
e nao se sao objetos? seria isso.*/
/* entao a pag 166 da kathy em port ta errada ela diz que se usar
= = com referencia diferente imprime verdadeiro, ja que no exemplo dela
eu tenho duas variaveis do tipo enum porem com referencia diferente e o codigo
dizendo ela retorna verdade no seria falso?*/
Bom eu modifiquei a class dela para sabe se eu q to errado ou eh mais um erro do livro iai o q vcs me diz?
Aproveitei e fiz uma class para tentar tirar minha duvida:
class Enu{
enum Nome{ CAMILO, NETO}
public static void main(String args[]){
//aqui n2 refere-se a n1 recebe o mesma constante
Nome n1 = Nome.CAMILO;
Nome n2 = Nome.CAMILO;
//é a mesma coisa que acima
int a = 10;
int b = 10;
//é do mesmo tipo porem uma referencia diferente
Nome n3 = Nome.NETO;
System.out.println(n1==n2); //true
System.out.println(a==b); // true
System.out.println(n3==n1); //false
}
}
/*então enum eh um tipo, mais nao eh um objeto*/
flw!!! comentem ai…