发布网友 发布时间:2022-04-27 02:38
共3个回答
热心网友 时间:2022-06-24 22:32
你没有重写class a的equals方法,此时equals是直接使用基础父类Object的equals方法,而你看源代码或者看API手册都可以知道Object.equals()的实现就是使用"==",即直接比较指针的地址追答如果你只是需要进行比较,那么重写equals方法就行了,如果还有其他的需求比如往HashMap里面放,那么还需要重写hashCode那个方法,具体的你可以参考Effective Java那本书
equals的例子:
class A {
int num;
public A (int num) {
this.num= num;
}
public boolean equals(Object o1) {
if (o1 instanceof A) {
A compare = (A) o1;
if (compare.num == this.num) {
return true;
}
}
return false;
}
}
热心网友 时间:2022-06-24 22:32
a1 肯定是不会等于a2的。。。a1和a2两个变量分别指向了不同的实例,地址值不同,所以a1肯定不等于a2...热心网友 时间:2022-06-24 22:33
要类里面的某个变量相等,就认为是相等的