equals重写用来比较对象是否相等

发布时间 2023-07-19 17:52:20作者: 张扬的小白鼠
public class Test{
  public static void main(String[] args){
      //创建两个时间对象
        MyTime t1 = new MyTime(2008,8,8);
        MyTime t2 = new MyTime(2008,8,8);
      //通过equals判断两个对象是否相等
        System.out.println(t1.equals(t2));
    }  
}
//时间类
class MyTime{
    int year;
    int month;
    int day;
    public MyTime(int year , int month, int day){
        this.year = year;
        this.month = month;
        this.day = day;
    }
    //重写equals方法
    public boolean equals(Object obj){
        //t1调用equals方法用int值接收
        int year1 = this.year;
        int month1 = this.month;
        int day1 = this.day;
        //判断obj是不是MyTime类型
        if(obj instanceof MyTime){
            MyTime t = (MyTime)obj;//是MyTime类型,进行强转
            int year2 = t.year;//用int值接收t2对象传过来的参数
            int month2 = t.month;
            int day2 = t.day;
            //判断t1和t2对象的值是否相等
            if(year1 == year2 && month1 == month2 && day1 == day2){
                return true;
            }
        }
        //不相等传回FALSE
        return false;
    }
}