ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3장 - 자바와 객체 지향
    Spring Framework/스프링 입문을 위한 자바 객체 지향의 원리와 이해 2023. 4. 9. 00:01
    728x90

    객체 지향은 인간 지향이다

    프로그래밍 언어의 발전사를 보면 저수준의 기계어로 시작해서 고수준의 자바까지 인간을 배려하기 위해 발전해 왔습니다.

     

    기존의 구조적 프로그래밍 언어에서 중요한 것은 함수로 코드를 논리적인 구조로 분할하여 정복하는 Divide and Conqure 방식을 지향했습니다.

     

    이후에 더 파격적인 제안으로 객체 지향이 등장하게 됩니다.

    모든 것은 객체이며 우리가 주변에서 사물을 인지하는 방식대로 프로그래밍을 하자는 것이 객체지향의 출발점입니다.

     

    김종민, 한효주, 김연아 라고 하는 존재는 사람이라는 분류에 속합니다.

    그리고 사람이라는 분류 안의 객체(object)들은 나이, 몸무게, 키 등의 속성(property)과 먹다, 자다, 울다 등의 행위(method)를 가지고 있습니다.

     

    객체 지향의 4대 특성

    책에서는 캡! 상추다 라고 객체지향의 4대 특성을 앞글자를 따서 외우게 도와줍니다.

    • 캡 - 캡슐화
    • 상 - 상속
    • 추 - 추상화
    • 다 -다형성

     

    클래스 vs 객체

    책에서는 평소에 알던 붕어빵틀(클래스)과 붕어빵(객체)의 관계를 부정합니다.

     

    이유는 다음과 같은 코드가 논리적으로 어긋납니다.

    붕어빵틀 붕어빵 = new 붕어빵틀();

    새로운 붕어빵틀을 만들었떠니 붕어빵이 되었다.

     

    객체와 클래스 구분법

    • 사람은 객체인가 클래스인가?
    • 김연아는 객체인가 클래스인가?
    • 펭귄은 객체인가 클래스인가?
    • 뽀로로는 객체인가 클래스인가?

    나이를 물어보면 판단하기 쉽습니다.

    펭귄과 사람의 나이를 물어본다는 것은 적절하지 않습니다.

    클래스는 분류에 대한 개념이지 실체가 아니고, 객체는 실제를 의미합니다.

     

    추상화

    병원 애플리케이션, 은행 애플리케이션 어떤 것을 개발하느냐에 따라 클래스 설계는 달라집니다.

    병원 애플리케이션에서는 사람을 환자로 생각합니다.

    반면 은행 애플리케이션에서는 사람을 고객으로 생각합니다.

     

    병원 애플리케이션의 사람의 행위

    • 먹다
    • 자다
    • 운동하다

     

    은행 애플리케이션의 사람의 행위

    • 입금하다
    • 출금하다
    • 이체하다
    • 대출하다

    애플리케이션의 관심사에 따라 객체의 추상화 모델링이 달라지게 됩니다.

     

    이외 책에서 다루는 기본 자바 지식들

    • static 키워드와 활용 예시
    • 상속에 대하여 (is-a, a kind of)
    • 다중상속과 인터페이스
    • 다형성
    • Call By Value vs Call By Reference

    댓글

Designed by Tistory.