package concourse;public class Groundhog2 {
int ghNumber;
Groundhog2(int n){
ghNumber=n;
} public boolean equals(Object o) {
if((o!=null)&&(o instanceof Groundhog2)){
return
//这个类是放在集合里的,如SET,它只能放一个一样的对象就是通过比较EQUALS来的,
//那在这里前是指的集合里的哪一个ghNumber,难道是跟对象中的所有的对象的GHNUMBER
//比较吗???
ghNumber==((Groundhog2)o).ghNumber;
//而且这里传进来的是只是要O的对象了,还要ghNumber==((Groundhog2)o).ghNumber;
//才返回更是不解。。
//请指教
}
else
return false;
} public int hashCode() {
return ghNumber;
}
}
int ghNumber;
Groundhog2(int n){
ghNumber=n;
} public boolean equals(Object o) {
if((o!=null)&&(o instanceof Groundhog2)){
return
//这个类是放在集合里的,如SET,它只能放一个一样的对象就是通过比较EQUALS来的,
//那在这里前是指的集合里的哪一个ghNumber,难道是跟对象中的所有的对象的GHNUMBER
//比较吗???
ghNumber==((Groundhog2)o).ghNumber;
//而且这里传进来的是只是要O的对象了,还要ghNumber==((Groundhog2)o).ghNumber;
//才返回更是不解。。
//请指教
}
else
return false;
} public int hashCode() {
return ghNumber;
}
}
所以这个方法和集合无关2.虽然你知道他是Groundhog2 但是编译器不知道呀 编译器怎么能知道你在前面写了判断语句来保证? 所以不写就会编译错误
int empno;
String ename;
public Employee_bean()
{
}
public Employee_bean(int i,String empName)
{
empno=i;
ename=empName;
}
public void setEmpno(int i)
{
empno=i;
}
public int getEmpno()
{
return empno;
}
public void setEname(String empName)
{
ename=empName;
}
public String getEname()
{
return ename;
}
public int compareTo(Object o)
{
Employee_bean e=(Employee_bean)o;
//就好比在这里,这个THIS指的是谁 ,如果有多个Employee_bean 的时候比如在集合中,跟集合//中的每个Employee_bean 吗???
if(this.empno==e.empno)
return 0;
else if(this.empno>e.empno)
return 1;
else
return -1;
}
}
if(o==this) return true;
if(!(o instanceof Groundhog2)) return false;
final Groundhog2 other=(Groundhog2)o;
if(ghNumber!=other.ghNumber) return false;
return true;
}public int hashCode(){
return ghNumber.hashCode();
}
比如
Employee_bean a;
a.compareTo(object o);this.empno 指的就是 a.empno
this指向对象自身