객체지향 프로그래밍, 구조체와 클래스 비교
객체지향 프로그래밍
- 원형, 틀(구조체, 클래스)을 만들고 그것으로 여러 그릇(인스턴스)을 찍어내는 것.
공통점
- 값을 저장하는 속성을 변수나 상수로 정의할 수 있다.
- 함수적인 기능을 제공하는 메소드(Method)를 정의할 수 있다.
- 속성값에 접근할 수 있는 방법을 제공하는 서브스크립트(Subscript)를 정의할 수 있다.
- 객체를 원하는 초기 상태로 설정하게 하는 초기화 블록을 정의할 수 있다.
- 기본 형태로 구현된 객체를 기반으로 함수적 기능을 확장할 수 있는 확장(extends) 기능을 제공한다.
- 특정 형식의 함수적 표준을 제공하기 위한 프로토콜을 구현할 수 있다.
차이점
- 클래스의 특성을 다른 클래스가 물려받아 그대로 사용할 수 있는 상속이 가능하다.
- 실행 시 컴파일러가 클래스 인스턴스의 타입을 미리 파악하고 검사할 수 있는 타입 캐스팅을 제공한다.
- 클래스 인스턴스에 할당된 리소스를 인스턴스가 소멸할 때 직접 해제할 수 있도록 소멸화 구문을 제공한다.
- 클래스 인스턴스는 다른 객체로 전달될 때 레퍼런스 참조 형식으로 제공되며, 이때 레퍼런스 참조가 가능한 개수는 제약이 없다.
ARC
- Auto Reference Counter: 메모리 참조, 해제를 담당
'IOS > Swift' 카테고리의 다른 글
메소드 (0) | 2016.05.28 |
---|---|
프로퍼티 (0) | 2016.05.28 |
클로져(Closure) (0) | 2016.05.28 |
함수의 반환 타입으로 함수 사용 (0) | 2016.05.07 |
인자값과 반환값 (0) | 2016.05.07 |
댓글 로드 중…
트랙백을 확인할 수 있습니다
URL을 배껴둬서 트랙백을 보낼 수 있습니다