Object 클래스
● 모든 클래스의 최상위 클래스이다
● 모든 클래스들은 import extends 가 없어도 Object 클래스가 상속이 되어있다
따라서 우리는 Object클래스의 메서드를 사용하고 있었는데 그중 재정의 할 수 있는
2가지 toString(), equals(Object obj) 를 알아보자
toString()
toString 메서드는 이렇게 표시 되어있다
리턴 타입 String 으로 클래스와 이름을 가져와서 @ 해쉬태그(주소값)을 리턴해준다.
한마디로 주소값을 리턴하준다는 것인데..
우리는 final 이 없기 때문에 재정의가 가능하다.
Book이라는 클래스를 생성해서 bookId , title , author 멤버변수를 만들었다면
오버라이딩을 통해 책의 번호 , 제목 , 저자를 반환시키도록 정의를 내렸다.
그렇다면?
book1 참조변수를 넣었을 때
원래는 주소값이 나와야할 상황이 책의 번호 , 제목 , 저자가 반환이 되었다 ㅎㅎ
equals()
equals는 boolean타입으로 this(현재주소) 와 Object의 주소가 같으면 true 다르면 false를 반환한다.
또 final 이 없기 때문에 우리는 재정의를 할 수 있겠죠?
원래 주소값(물리적)이 다르면 두 객체는 다르다는 것을
책 제목이 같다면(논리적) 두 객체는 같게된다! 라고 재정의를 내렸다.
실행을 시켜보자
= 로 주소값을 비교했을때 객체는 다르지만
equals(재정의)는 같다고 나오게 된다.
'JAVA' 카테고리의 다른 글
Java - 문자열 ~> 자료형 변환 또는 반대로 (0) | 2023.09.18 |
---|---|
Java - 단위 , 진수 표현 (0) | 2023.09.18 |
JAVA - 인터페이스 (0) | 2023.08.10 |
JAVA - StringBuffer , StringBuilder (0) | 2023.08.10 |
JAVA - String (상수 풀 영역) (0) | 2023.08.10 |