1、Java中 基本数据类型 比较是否相等时 使用“==”
基本数据类型有:byte,short,int,long,float,double,bollean,char。
2、Java中 引用数据类型 比较其内容是否相等时 使用equals(比较时一般重写equals方法)
Java中的引用数据类型有类class(抽象类abstract class)、接口类型(interface)、数组类型、枚举类型、注解类型(@interface)、字符串类型。
若使用== 则比较的是引用的地址。
@Override
public String toString() {
return "year=" + year +
", month=" + month +
", day=" + day ;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MyTime myTime = (MyTime) o;
return year == myTime.year &&
month == myTime.month &&
day == myTime.day;
}
public class Test01 {
public static void main(String[] args) {
MyTime myTime1=new MyTime(2022,1,28);
MyTime myTime2=new MyTime(2022,1,28);
MyTime myTime3=new MyTime(2022,1,30);
System.out.println(myTime1==myTime2);//这比较的是myTime1与myTime2的内存地址(两个不同的对象)。false
System.out.println(myTime1.equals(myTime2));//这比较的是myTime1与myTime2中的年月日。true
System.out.println(myTime1.equals(myTime3));//false
System.out.println(myTime3.toString());//year=2022, month=1, day=30
}
}