Questão Test Killer SCJP 6 - hashCode() (RESOLVIDO)

4 respostas
Marcio_Duran
Como elimino o construtor Person(){}, e como exiber os resultados das variáveis de instância calculando {return name.hashCode()+age*7;}
import java.util.*;
  public class Person {
	public static void main(String args[]){
		
	}
   private String name, comment;
   private int age;
   public Person(String n, int a, String c){
	name =n; age=a;comment=c;
   }
	
   Person(){}
    public int hasCode(){
	   {return name.hashCode()+age*7;}
   }
   
    public void mostre(){
    	System.out.println("idade");
    	new Person().hasCode();
    }
        
   public boolean equals(Object o){
	if(!(o instanceof Person)) return false;
	Person p=(Person)o;
	return age==p.age && name.equals(p.name);
	
	 	} 			
  
}

4 Respostas

faelcavalcanti

cara não entendi o objetivo desta questão. coloca o texto sem traduzir, e ainda mais estou estranhando este código, foi você quem fez?
desculpa mas tá um zaralho!

Marcio_Duran

faelcavalcanti:
cara não entendi o objetivo desta questão. coloca o texto sem traduzir, e ainda mais estou estranhando este código, foi você quem fez?
desculpa mas tá um zaralho!

Tá ai, a questão original (Basta Justificar a resposta)

public class Person { private String name, comment; private int age; public Person(String n, int a, String c) { name = n; age = a; comment = c; } public boolean equals(Object o) { if (! (o instanceof Person)) return false; Person p = (Person)o; return age == p.age && name.equals(p.name); } }
What is the appropriate definition of the hashCode method in class Person?

A. return super.hashCode();
B. return name.hashCode() + age * 7; (Resposta Certa) Justifique !!!
C. return name.hashCode() + comment.hashCode() / 2;
D. return name.hashCode() + comment.hashCode() / 2 - age * 3;

rafaelglauber

Oi,

A questão utiliza somente age e name no equals, logo é mais apropriado usar somente eles dois no hash, a única letra que usa somente os dois é a B.

Marcio_Duran

rafaelglauber:
Oi,

Valeu !!!

:arrow: Não pensei em pesquisa ao objeto, estava buscando o resultado sobre as saidas nas variáveis de instância e não me preocupei em conjunto.

:idea: Sim, esta certa sua colocação.Na verdade estava querendo buscar resultados de saída quando a intenção era mesmo uma simples equals(ao Objeto) , a multiplicação me confundiu a pergunta.

Criado 18 de setembro de 2008
Ultima resposta 19 de set. de 2008
Respostas 4
Participantes 3