Duvida, comparação de objetos

2 respostas
Humbertim2
public class TesteEquals {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StringBuffer s1 = new StringBuffer("hello");
		StringBuffer s2 = new StringBuffer("hello");
		Float f1 = 9.0F;
		Double f2 = 9.0;
		
		System.out.println(f1.equals(f2));
		System.out.println(s1==s2);
		System.out.println(s1.equals(s2));
	}

}

nao entendi o porq o 1 e o 2 teste da false...

2 Respostas

G

o primeiro da false porque quando comparamos objetos de classes diferentes pelo equals ira retornar false. o segundo tambem da false porque s1 e s2 nao possuem a mesma referencia.
o terceiro ira retornar false porque a classe StringBuffer nao sobrescreve o metodo equals, entao ele ira funcionar que nem o ==.

Creio que seja isso.

gustavobs

Um wrapper só retorna true se for comparado a outro do mesmo tipo ou ao seu primitivo do mesmo tipo…
1o = false

O segundo é false, pq sao 2 objetos distintos…

e o 3o é false tb pq a classe StringBuffer não sobreescreve o método equals() então é simplesmente uma comparação == (igual ao anterior)

abraço…

Criado 5 de fevereiro de 2009
Ultima resposta 5 de fev. de 2009
Respostas 2
Participantes 3