Class, Struct, Enum 간단 정리
특징
Class의 특징
- 참조 타입
- 상속 가능
- 타입 캐스팅
- 인스턴스/타입 메서드
- 인스턴스/타입 프로퍼티
- Deinit
- 전통적인 OOP 관점에서의 클래스
- iOS의 프레임워크는 클래스로 구성되어져 있다. (ex UIViewController)
Struct의 특징
- 값 타입 (복사)
- 상속 불가
- 인스턴스/타입 메서드
- 인스턴스/타입 프로퍼티
- 데이터 타입(Int, Double, Bool등)은 구조체로 되어 있다.
Enum의 특징
- 값 타입 (복사)
- 상속 불가
- 인스턴스/타입 메서드
- 인스턴스/타입 연산 프로퍼티
- 타입관리 용이, 안정성
공통점
클래스와 구조체의 공통점
- 프로퍼티 정의 (값 저장)
- 메서드 정의 (기능 제공)
- 서브스크립트 정의
- 이니셜라이저 정의 (초기화)
- extension을 활용한 확장
- 프로토콜 채택 가능