1. Equals方法
一般情况下不可以再用==时,用Equals方法,属于Object并不是final,任何类都可以继承和覆盖这个方法。
public class Main {
public static void main(String[] args) throws Exception {
B i=new B (20);
B j=new B (20);
System.out.println(i==j);
}
}
class B {
private int b;
B(int b) {
this.b=b;
}
}
结果是false
因为对象之间==比较的是内存地址,不是对象属性
格式 调用与参数比较
i.equals(j)
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
B i=new B (20);
B j=new B (20);
System.out.println(i.equals(j));
}
}
class B {
private int b;
B(int b) {
this.b=b;
}
}
结果false
因为默认比较的是地址
覆盖Equals
public class Main {
public static void main(String[] args) throws Exception {
B m=new B (20);
B n=new B (20);
System.out.println(m.equals(n));
}
}
class B {
private int b;
B(int b) {
this.b=b;
}
public boolean equals(B x) {
if(this.b==x.b) {
return true;
}
else
return false;
}
}
结果
true
一般Equals都需要覆盖
网友评论