#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 는 내용 비교하는거로 바꿔서 그냥 사용할 수 있다.


+ Recent posts