public class Test {
public static void main(String[] args){
Time time = new Time(2022,4,27);
System.out.println(time.toString()); //这里可以直接写System.out.println(time);
Time t1 = new Time(2022,1,1);
Time t2 = new Time(2022,1,1);
System.out.println(t1.equals(t2)); //输出true
Time t3 = new Time(2022,1,3);
System.out.println(t2.equals(t3)); //输出false
}
}
class Time{
int year;
int month;
int day;
public Time(){}
public Time(int year,int month,int day){
this.year = year;
this.month = month;
this .day = day;
}
public String toString(){
return year +"年"+month +"月"+ day +"日";
}
//改良版
public boolean equals(Object obj){
if(obj == null || !(obj instanceof Time)){//如果obj为空 或者 obj不是Time,直接返回false
return false;
}
if(this == obj){
return true;
}
Time t = (Time)obj; //这里直接转型,因为前面已经判断过obj了
return this.year == t.year && this.month == t.month && this.day == t.day; //&&为短路与,全相等输出true,反之输出false
}
}