기술스택/자바(Spring)

자바 최상위 Class Object

ys.k 2025. 2. 11. 23:14

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

 

드디어 실전 자바 기본이 끝나고 중급으로 올라왔다.

 

중급 강의를 결제하고 10% 정도 봤는데 난이도가 올라감을 느낌과 동시에 희열, 절망이 같이 왔다.

 

슬슬 자바가 기본 제공하는 메서드의 원문에 대해 봐야 하는 것들이 생기는데 아주 낯설다.

 

진작 보고 공부했어야 했는데 늦은 시작이 항상 아쉽다.

 

이번 시간엔 Object에 대해 알아보자

 

자바에는 사실 기본 상속 클래스가 있었다.

 

바로 Object Class다.

 

그 말은 즉, Object 타입으로 어떤 객체 타입이든 넣을 수 있다는 것이다.

 

자바 기본 제공 메서드는 이 Object Class의 요소였으며, 우리는 이것 또한 오버라이딩 해서 입맛대로 바꿀 수가 있었다.

 

그렇다면 왜 자바는 Object Class가 최상위 부모로 뒀을까?

 

1. 공통기능 제공

2. 다형성의 기본 구현

 

2가지 이유가 있다.

 

바로 println(), equals(), toString() 등 더 있지만 이것이 기본 제공 메서드이다.

 

그래서 우리는 여태 위 메서드를 따로 구현하지 않아도 사용할 수 있었던 것이다....

 

Object 기본 메서드의 기능에 대해 알아보자

 

 - toString() : 객체의 정보제공

 - equals() : 객체의 같음을 비교

 - getClass() : 클래스 정보 제공

 

등이 있으며, 하위 클래스에서 필요에 따라 오버라이딩해서 사용할 수도 있다.

 

다형성의 기본 구현에 대해서도 알아보자.

 

우리는 최상위 부모 타입 Object를 통해 어떠한 객체 타입이든 넣을 수 있다.

 

또한 Object 배열은 어떤 객체 타입이든 배열에 넣을 수 있다.

 

추가적으로 size() 메서드는 배열에 담긴 객체의 수를 반환한다.

 

다만 타입이 Object이기 때문에 전달받은 참조값을 찾기 위해 다운 캐스팅을 반드시 해줘야만 한다.

 

이 부분부터 딥해지기 때문에 이번 포스팅은 간단히 Object에 대해서만 알아보고 자세한 내용은 추후 포스팅을 통해 풀어나가보자.

 

 

++

equals() 공부 중에 Object Class에도 있고 String Class에도 있는데 호출하는 Class의 위치에 따라 선택되는 메서드가 달라졌다. 이 부분이 아직 이해가 안 되어서 부득이하게 끊었다.

 

++

질문을 통해 깨달음을 얻게되었다.

 

일단 지금 포스팅에서 설명하기엔 내용이 너무 동떨어져 있어 다음 포스팅에서 자세히 설명해보자.