http://www.yes24.com/Product/Goods/18249021?pid=136927&ReturnURL=http://www.yes24.com&
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=60550259
추상화란?
- 사물들의 공통점은 취하고 다른점은 버림으로써 단순하게 사물을 단순화
아이폰12. 아이폰 se2, 갤럭시11, z플립3 - > 핸드폰
class : 핸드폰, instance : 아이폰12. 아이폰 se2, 갤럭시11, z플립3
* 객체란 어떤 특정 개념을 적용할 수 있는 사물, 객체에 개념의 적용됬을 때 객체를 개념의 인스턴스라고 한다.
* 개념은 타입(type)으로 부를 수도 있다. - 1번에서 단순화한 내용에서 세부 정보를 버리고 목적에 따라 필요한 정보만 남겨 강조함으로써 사물을 단순화
* 복잡성을 이해하기 쉬운 수준으로 단순화하는게 궁극적인 목적이다.
분류
- 분류는 추상화를 위한 도구이고 객체지향의 가장 중요한 개념 중의 하나이다.
- 심볼, 내연(행동), 외연(집합)으로 구분
타입은 데이터가 어떻게 사용이 되는지에 관한 것
- 숫자는 연산자를 이용해 더하거나 빼거나 할 수 있는 데이터
- 타입에 속한 데이터가 어떻게 처리되는지는 숨겨진다. (개발자는 데이터 타입과 연산자만 알면 됨)
- 데이터 타입은 메모리 안에 저장된 데이터의 종류를 분류하는데 사용하는 메모리 집합에 대한 메타 데이터
- 객체는 행동에 따라 변할 수 있는 데이터 타입, 내부적인 로직은 외부로부터 철저히 감춰진다.
즉 같은 행동을 하는 객체는 같은 데이터 타입으로 분류된다. (다형성)
객체를 결정하는 건 행동, 데이터는 행동을 따를 뿐
객체 분류하기
1. 어떤 행동을 하는 객체인지 추상화 (역할, 책임 부여)
2. 그 역할(행동)을 어떻게 수행할 지 로직 작성 (구현)
3. 구현 부분은 외부 인터페이스 뒤로 캡슐화
클래스와 타입은 개념이 다르다.
클래스는 타입을 구현하기 위한 도구 중 하나 (객체지향 프로그램에서)
일례로 자바스크립트 같은 언어에선 클래스를 사용하지 않는다.
'Book > 객체지향의 사실과 오해' 카테고리의 다른 글
객체지향의 사실과 오해 C4 (0) | 2021.10.11 |
---|---|
객체지향의 사실과 오해 - C2 (0) | 2021.08.21 |
객체지향의 사실과 오해 - C1 (0) | 2021.08.18 |