Book/객체지향의 사실과 오해

[Book] 3장) 타입과 추상화

kkkkkkkkkkkk 2022. 2. 16. 15:40

학습 내용

  • 타입과 추상화에 대한 이해

 

추상화

  • 목적
    • 명확하게 이해하기 위해 특정 부분을 생략하고 감춤으로써 복잡도를 극복하는 것이 목적이다.
  • 방법
    • 첫번째 : 객체들간의 공통점을 합하고 차이점은 버리는 일반화를 통해 단순하게 만든다.
    • 두번째 : 중요 부분을 강조하기 위해 불필요한 세부 사항을 제거하여 단순하게 만든다

 

 

개념

  • 일반화한 추상적인 사람들의 생각. 언어와 사고의 기본 단위이다. (출처 : 나무위키)
  • 3가지 관점
    • 심볼 : 개념의 간략한 이름.
    • 내연 : 개념을 완전히 나타낼 수 있고 의미를 통해 객체가 개념에 속하는지 알 수 있다.
    • 외연 : 개념에 속하는 모든 객체의 집합.
  • 개념을 이용해 공통점을 가진 객체들을 분류하여 복잡성을 극복 할 수 있다.

 

 

 

분류

  • 객체에 특정한 개념을 적용하는 작업
    • 중요도 : 분류의 따라 객체지향의 품질을 결정한다.
      • 유지보수
      • 재사용성

 

타입

  • 타입은 개념과 동일하다.
  • 데이터 타입
    • 메모리 안에 데이터를 분류하는 메타데이터이다.
      • 메타 : ~에 대해서, 다른 개념으로 부터의 하나의 개념을 완성시킨다는 뜻이다.
  • 객체와 타입
    • 다형성
      • 어떤 객체가 어떤 타입에 속하는지는 행동이 결정한다.
    • 캡슐화
      • 객체 내부적인 표현은 외부로부터 감춘다.

 

 

클래스

  • 타입과는 다른 개념
    • 객체의 타입을 분류하여 구현한 것

 

 

슈퍼 타입 과 서브 타입

  • 슈퍼 타입
    • 일반화를 한 타입 -> 부모
  • 서브 타입
    • 특수화를 한 타입 -> 자식
  • 관계 
    • 부모 자식 관계 -> 상속