==的使用
==:运算符
可以用于基本数据类型和引用型数据类型
用于基本数据类型时,比较的是变量保存的数据是否相等(注意自动类型提升的情况)
用于引用数据类型时,比较的是两个对象的地址是否相同,即两个引用是否指向同一个对象实体
equals
- equals()是方法
- 只能适用于引用数据类型
- Object类中equals方法的定义:
public boolean equals(Object obj){
return(this==obj)
}
说明:Object类中定义的equals方法也是比较引用的地址是否相同 - String,Date,File,包装类等都重写了Object类中的equals()方法,重写以后比较的是两个对象的内容是否相等
- 如何重写equals()方法
public class EqualsTest {
public static void main(String[] args) {
CustomerTwo cust1=new CustomerTwo("Tom",12);
CustomerTwo cust2=new CustomerTwo("Tom",12);
CustomerTwo cust3=new CustomerTwo("Jane",13);
System.out.println("cust1 equals cust2"+cust1.equals(cust2));
System.out.println("cust2 equals cust3"+cust2.equals(cust3));
}
}
class CustomerTwo{
private String name;
private int age;
public CustomerTwo(){
}
public CustomerTwo(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof CustomerTwo) {
CustomerTwo customerTwo = (CustomerTwo) obj;
return this.age == customerTwo.age && this.name.equals(customerTwo.name);
}
return false;
}
}