Java/개념

JAVA package - java.lang패키지/Object클래스/equals메서드

정복잉 2020. 5. 10. 07:25
반응형

 

==과 equals의 비교
equals메서드의 재정의

※개념정리

 

Object클래스

1) java.lang 패키기에 포함되는 클래스

2) 모든 클래스의 상위 클래스 (자바 클래스 계층구조에서 상위)

 

2.equals( )메서드

=객체의 값을 비교하여 true/false 반환하는 메서드

 

equals( )메서드 구조

if(참조변수1.equals(참조변수2))

실행할 문장

else

실행할 문장

 

equals( )와 ==은 다르다.

객체의 값을 비교할때 ==의 경우 내용이 같아도 참조변수가 다르면 주소값이 다르기 때문에

다르다는 결과값을 도출한다.

그에 비해 equals는 내용이 같다면, 참조변수가 달라도 같다라는 결과값을 도출한다. 

 

equals( )메서드의 재정의

class Car {
private String model;  //필드
public Car(String model) {this.model=model;}  //생성자, 객체선언시 모델의 값도 선언해야 함
public boolean equals(Object obj) {  //'equals' 이름의 메소드 생성, 참조변수의 타입은 상위클래스
   if (obj instanceof Car) //Car클래스에 obj가 속해 있다면
     return model.equals(((Car) obj).model);

//equals()를 재정의 한다. String의 equals( )를 호출하여서 문자열이 동일한지 검사
  else
    return false;
}