#equals(Object o) : boolean - 객체의 내용을 비교 할 수 있도록 구현한다.
Truck t1 = new Truck(4,"abc",2019);
Truck t2 = new Truck(4,"abc",2019);
System.out.println(t1==t2); //주소 비교
System.out.println(t1.equals(t2)); //내용 비교 (밑에서 오버라이딩 해서 내용비교가 된다,
재정의 안해주면 주소비교라서 false)
둘다 false 가 나오는데
== 연산자의 경우 주소를 비교하는거니까 무조건 false 가 나오는데
equals()는 기본 object에서 주는 클래스로 들어가 보면 == 연산자로 비교하고 있다
그래서 재 정의해서 주소값 말고 내용을 비교 할 수 있도록 사용해야한다.
@Override
public boolean equals(Object obj) {
if(obj !=null && obj instanceof Truck) {
Truck t = (Truck)obj;
if(num == t.num && model.equals(t.model) && year ==t.year) {
return true;
}
}
return false;
}
//객체 비교하면 주소값이 비교가 되서 재정의 하지 않으면 equals로 내용을 비교할 수가 없다..
String class equals 는 내용 비교하는거로 바꿔서 그냥 사용할 수 있다.
'JAVA > JAVA 개발, 알고리즘 tip' 카테고리의 다른 글
Java #StringBuilder 문자열을 편집하여 사용하고자 할 경우! (0) | 2019.01.19 |
---|---|
Java #String 클래스 (0) | 2019.01.19 |
Java #toString (0) | 2019.01.19 |
#Reference Type Casting (0) | 2019.01.19 |
#문자열 공백 제거 Trim() 함수 (0) | 2019.01.19 |