比较运算符,==,比较基本数据类型的值是否相等,判断两个对象是否具有相同的引用值。
equals呢,
Object类中默认实现equals方法的语句如下:
public boolean equals(Object o){
return (this==obj);//没懂的地方,this==obj,this指什么
}
相当于Object类中使用==运算符。所以Object的子类有必要修改equals方法
object1.equals(object2);
常见错误:
Object circle1=new Circle(); Object circle2=new Circle(); System.out.println(circle1.equals(circle2));
class Circle{
public boolean equals(Circle circle){ return this.radius==circle.radius; }
}
这是拿Object对象去和circle对象对比
正解:
public boolean equals(Object obj){ return this.radius==((Circle)obj).radius; }