public class ValuesPair {
private static int number;
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public ValuesPair(int values){
this.number = values;
}
public boolean equals(Object obj ){//问题1
System.out.println("---->equals()");
if(obj instanceof ValuesPair){
System.out.println("-aa--->equals()");
ValuesPair v = (ValuesPair)obj;
if(number==v.getNumber()){
return true;
}
}
return false;
}
public static int compareTo(Object obj){
ValuesPair v = (ValuesPair)obj;
Integer iwlook = new Integer(v.getNumber());
if(iwlook.intValue()>number){
return -1;
}if(iwlook.intValue()<=number){
return +1;
}
return 0;
}
public int hashCode(){//问题2
System.out.println("---->hashCode()");
return number*100;
}
public static void main(String args[]) {
ValuesPair v = new ValuesPair(11);
compareTo(v);
System.out.println("----"+v.number);//问题3
}
}
问题1和问题2都是重写了的方法,但是它们不是在运行的时候就调用吗?问题3的结果怎么是11?
|