Como elimino o construtor Person(){}, e como exiber os resultados das variáveis de instância calculando
{return name.hashCode()+age*7;}
[code]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);
}
}[/code]
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!
[quote=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![/quote]
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;
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.
[quote=rafaelglauber]Oi,
[/quote]
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.