public class Text03 {
int year;
int month;
int day;
public Text03(){}
public Text03(int year,int month,int day){
this.year = year;
this.month = month;
this.day = day;
}
@Override
public boolean equals(Object obj) {
int year1 = this.year;
int month1 = this. month;
int day1 = this.day;
if(obj instanceof Text03){
Text03 tt = (Text03)obj;
int year2 = tt.year;
int month2 = tt.month;
int day2 = tt.day;
if(year1 == year2 && month1 == month2 && day1 == day2){
return true;
}
}
return false;
}
public static void main(String[] args) {
Text03 text03 = new Text03();
Text03 text031 = new Text03();
boolean flag = text03.equals(text031);
System.out.println(flag);
}
}
这是equal方法的重写,用来对比两个对象的方法,直接使用双等号不能够正确比较出对象是否相等。
这是equal方法改良后的代码
```java
public boolean equals(Object obj) {
if(obj == null){
return false;
}
if(!(obj instanceof Text03)){
return false;
}
if(this == obj){
return true;
}
Text03 tt = (Text03)obj;
if(this.year==tt.year && this.month==tt.month && this.day==tt.day){
return true;
}
return false;
}
进行到了这里,还可以进一步的继续进行改良
public boolean equals(Object obj) {
if(obj == null){
return false;
}
if(!(obj instanceof Text03)){
return false;
}
if(this == obj){
return true;
}
Text03 tt = (Text03)obj;
return this.year==tt.year && this.month==tt.month && this.day==tt.day;
}
二丶
引用数据类型String已经重写了toString方法和equal方法。字符串就可以直接使用这两个方法。
java中基本数据类型作比较使用 ==
java中引用数据类型作比较使用 equal()方法