此处调用的equals方法实际上调用的是object类的equals方法,这个方法判断两个对象是否是同一个引用,也就是说此时equals方法的作用和“==”的作用是一样的。而你的代码中d1和d2是通过两个new语句构造的两个不同的对象,所以结果为false。
如果想通过equals方法判断对象内部的变量是否相等,可以在ddd类中重写equals方法:
@Override
public boolean equals(Object o)
{
if(o instanceof ddd)
return (((ddd)o).i == this.i) && (((ddd)o).j == this.j);
else
return false;
}
记得要把i和j声明为public。