ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Object class
    Java/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

    댓글

Designed by Tistory.