Programming/Java

Object 제공 메서드: toString() / equals() & hashCode()

lucid_07 2023. 11. 28. 17:55
반응형

Object는 기본적으로 모든 클래스들이 상속하는 클래스.

이 메서드들은 오버라이딩하도록 제공되는 메서드들이다.

 

Example

public class example {
	public static void main(String[] args) {
    	Car car = new Car();
        System.out.println(car); // println(Object x)
	}
}

Object를 받아서 출력하는 메서드를 가지고 있음: Object로 참조할 수 있는 모든 매개변수는 모두 이 메서드를 사용할 수 있다.

해당 println()을 살펴보자.

toString()메서드가 실행되는 것.

다만, Car 클래스에 Object 메서드를 오버라이드하여 작성하지 않으면 쓸모가 없다.

 

왜 이것들을 오버라이드하여 사용하나?

  1. toString(): 클래스의 속성 값을 출력하는 메서드: 어떤 속성을 출력해주어야 하나?
  2. equals(): 같은 값인지를 확인하는 메서드: 같은지 판단하는 기준이 필요
  3. hashCode() 는?
    • 해시를 사용할 때에는 다음의 두가지 기능이 필요하다: (1) 해시 코드 생성, (2) 두 값이 같은지 판단
    • HashSet, HashMap 이라는 자료구조 객체를 사용할 때 equals()와 hashCode() 메서드를 오버라이드하여 사용하게 된다.
반응형

'Programming > Java' 카테고리의 다른 글

추상 클래스 1: 추상 클래스란  (0) 2023.11.30
Java 생성자와 super(), Immutable  (1) 2023.11.30
다형성 Polymorphism  (0) 2023.11.28
상속  (0) 2023.11.28
패키지 | 토막글  (1) 2023.11.28