클래스 객체 인스턴스 - hwj0623/ios_swift GitHub Wiki
reference
출처1 class-vs-object-vs-instance
객체
real world objects의 2가지 특징은 state(variables)와 behavior(methods)이다.
- 객체는 실제 세계의 사물로부터 추상화된 state와 behavior를 지닌다.
- 함수 : 프로시저의 추상화
- 구조체, 배열, 포인터 .. : 데이터의 추상화
클래스
사물을 추상화하여 얻은 주요 특징들의 모음.
template/blueprint
- 특성과 행위를 정의
- 정의된 클래스를 실제화하면 특성이 다를 수 있음
인스턴스
- Object를 표현하는 Class의 고유한 copy를 의미.
- 클래스의 인스턴스는 OS로부터 메모리 할당을 받아서 실제화 된다.
“객체는 붕어빵(붕어빵의 관념)고, 클래스는 붕어빵틀이고, 인스턴스는 붕어빵틀에 메모리격인 앙금과 재료를 넣어 구체화된 붕어빵”
“구현할 대상 - 객체 객체를 만들기 위한 설계도 - 클래스 구현된 실체 - 인스턴스”
인스턴스
!== 객체
OOP 3가지 특징
캡슐화
- 데이터(data) 와 데이터를 다루는 방법(operation on data) 을 묶는 것
- 관련 있는 것을 묶는다 —> 추상화
상속성
- 하나의 클래스가 가지고 있는 특징들(데이터+조작)을 다른 클래스가 물려받는 것
- IS-A 관계 (계층관계)
- 상속 클래스는 기존 클래스와 구분되는 특징만 기술하여 추가
- 재사용성과 유연성