13. Swift 구조체와 클래스


* 기본개념 *
값을 저장할 수는 없지만 특정 기능을 실행할 수 있는 함수와, 값을 저장할 수 있지만 혼자서 특정 기능을 실행할 수는 없는 변수 상수의 특성을 모두모아놓았다고 이해하면 편하다.


  1. 구조체와 클래스의 공통점
  • 프로퍼티
    • 변수나 상수으를 사용하여 값을 저장하는 프로퍼티를 정의할 수 있다.
  • 메소드
    • 함수를 사용하여 기능을 제공하는 메소드를 정의할 수 있다.
  • 서브스크립트
    • 속성값에 접근할 수 있는 방법을 제공하는 서브스크립트를 정의할 수 있다.
  • 초기화 블록
    • 객체를 원하는 초기 상태로 설정해주는 초기화 블록을 정의할 수 있다.
  • 확장
    • 객체에 함수적 기능을 추가하는 확장(extends)구문을 사용할 수 있다.
  • 프로토콜
    • 특정 형식의 함수적 표준을 제공하기 위한 프로토콜을 구현할 수 있다.

  1. 구조체와 클래스의 차이점
  • 상속
    • 클래스의 특성을 다른 클래스에게 물려줄 수 있다.
  • 타입 캐스팅
    • 실행 시 컴파일러가 클래스 인스턴스의 타입을 미리 파악하고 검사할 수 있다.
  • 소멸화 구문
    • 인스턴스가 소별되기 직전에 처리해야 할 구문을 미리 등록해 놓을 수 있다.
  • 참조에 의한 전달
    • 클래스 인스턴스가 전달될 때에는 참조 형식으로 제공되며, 이때 참조가 가능한 개수는 제약이 없다.

//구조체의 정의 형식
struct 구조체_이름 {
    // 구조체 정의 내용이 들어갈 구문
}

//클래스의 정의 형식
class 클래스_이름 {
    // 클래스 정의 내용이 들어갈 구문
}

//카멜 표기법
  1. 구조체와 클래스 이름의 첫 글자는 대문자로, 나머지 글자는 소문자로 작성한다.
  2. 2개 이상의 복합 단어는 단어별로 끊어 첫 글자는 대문자로, 나머지는 소문자로 작성한다.
  3. 이미 축약된 약어는 모두 대문자로 작성 가능하다(ex: JSON, NS , HTTP 등)
  4. 프로퍼티나 메소드를 선언할 때는 소문자로 시작한다.
  5. 언더바로 단어를 연결하는 방식은 지양한다.



'Swfit' 카테고리의 다른 글

14. 딕셔너리 (Dictionary)  (0) 2017.08.04
12. Swift 클로저(Closure)  (0) 2017.08.04
11. Swift 함수의 중첩  (0) 2017.08.04
10. Swift 일급 객체로서의 함수  (0) 2017.08.04
9. Swift 매개변수  (1) 2017.08.04

설정

트랙백

댓글