Philographer

객체지향 프로그래밍, 구조체와 클래스 비교


객체지향 프로그래밍

  • 원형, 틀(구조체, 클래스)을 만들고 그것으로 여러 그릇(인스턴스)을 찍어내는 것.

공통점

  • 값을 저장하는 속성을 변수나 상수로 정의할 수 있다.
  • 함수적인 기능을 제공하는 메소드(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을 배껴둬서 트랙백을 보낼 수 있습니다