-
Object classJava/Basics 2019. 4. 6. 20:40
■Object class의 정체
- '기본적인' class이다.
- 뭔 말이냐면, 모든 클래스가 상속하고있는 기본 Default 클래스이다.
클래스들의 단군 할아버지인 것이다.
- 모든 클래스는 기본적인 Object 클래스를 암시적으로 상속받고 있다.
■그런데 모든 클래스가 Object를 상속받는 것을 왜 알아야 함?
- 추측컨대, 자바의 아부지인 제임스 고슬링은 "모든 클래스가 기본적으로
몇 가지 '특징'들을 가지고 있었으면 좋겠다" 라고 생각했던 것 같다.
- 왜냐면 모든 클래스가 필요로 하는 기능이 있었을텐데
이를 모든 클래스가 공통적으로 가지고 있도록 미리 약속할 수 있다면
귀찮게 매번 그 기능을 구현하거나 명세할 필요가 없을 테니 말이다.■스타크래프트 유닛 예를 통해 필요성 더 알아보기
- 예를 들면, 스타크래프트의 유닛들을 클래스들 이라고 생각해보자.
스타크래프트의 모든 유닛이 기본적으로 '이동' 이라는 행동을 할 수 있다.
그런데 새로운 유닛을 만들 때마다 '이동' 이라는 행동을 설계해줘야 한다면
매우 귀찮은 일이 아닐 수 없다.
- 사실 유닛마다 이동 이라는 메소드를 각각 구현할 때 복붙만 하면 돼서
귀찮지 않을 수 있지만, 혹여나 패치가 돼서 모든 유닛들의 이동 속도를 0.1%씩
증가시켜야 한다면? 소중한 시간을 복붙에 쏟아붓게 될 것이다.
모든 유닛에 적용됐는지 테스트까지 해야된다...ㅠ
- 그러나 만약 모든 유닛들이 기본적인 특징을 공유하고 있는 하나의 어떤 공간?클래스?를
사용하고 있다면?????? 수정은 그 곳! 단 한번만 하면 되는 것이다!!!!■Object 클래스의 존재의 유용성 자세히
- 모든 클래스가 공통적으로 공유하고 있는 메소드가 있다면, 어떤 클래스를 생성해도
그 메소드를 실행시킬 수 있다.
- 혹여나 자바 패치가 일어나서 공유되고 있는 메소드에 수정이 발생한다면,
Object 클래스 하나만 수정해놓으면 각 개발자들이 각자의 클래스를 만들고 사용할 때
자연스럽게 수정된 메소드를 사용할 수 있다!
- 아무튼 그래서 모든 클래스가 Object클래스를 상속하게 함으로써 Object 클래스의
몇 가지 유용한 메소드들을 모든 클래스가 사용할 수 있다는 것이 중요하다!
- 유용한 메소드의 예로는 toString(), eqauls(), clone() 등등이 있다.
'Java > Basics' 카테고리의 다른 글
자바 메모리 구조(Runtime Data Area) (2) 2019.05.16 String compare (0) 2019.04.09 jar,war,ear (0) 2019.04.06 String, StringBuilder, StringBuffer의 차이 (0) 2019.04.06 JAVA String Format (0) 2019.04.06 댓글