IOS

XX캠퍼스 강의 - ch02 _Swift 기본 문법(2)

Machine_웅 2022. 6. 2. 11:42
728x90
반응형

구조체와 클래스 

구조체는 값 타입 

클래스는 참조 타입

 

표기법 - 구조체와 클래스는 대문자로 시작하는 파스칼 표기법 사용.

 

1. 구조체

생성

멤버 변수 - 프로퍼티

멤버 함수 - 메서드 

생성시 생성자를 따로 만들지 않아도 자동으로 프로퍼티 네임에 맞게 생성자가 만들어진다.

 

 

사용  - 인스턴스 생성

2. 클래스

생성

사용

 

3. init

- 생성자  초기화 구문 

- 클래스 구조체 또는 열거형의 인스턴스를 사용하기 위한 준비 과정

 

* deinit{  }

- class 에서만 사용이 가능하고 인스턴스 해제시에 동작 ( nil 대입시 )

 

4. 프로퍼티

- 클래스 , 구조체, 열거형 등에 관련된 값 ( 인스턴스에 소속된 변수 및 속성 )

 

- 구조체를 상수로 선언하면, 내부 프로퍼티들도 상수가 된다 ( 값 타입이기 때문에 )

 클래스는 참조 타입이기 때문에,  상수로 선언을 해도 내부 프로퍼티 값을 바꿀수 있다. ( 참조 타입 )

 

연산형 프로퍼티 ( get set 을 사용 )

 

5. 프로퍼티 옵서버

- 프로퍼티의 값변화를 관찰 ( 프로퍼티가 set 될때마다 호출 ) 

- 저장프로퍼티,  오버라이딩된 저장계산 프로퍼티에서만 사용가능 

 

 

willSet - 변경전 처리 

didSet - 변경후 처리 

 

 

 

타입 프로 퍼티 

 

 

 

클래스와 구조체의 차이 

 

 

 

참조 타입 

-  class1.count 값도 2로 변경 되었다.  ( 이전에 고블린이 몽땅죽는 예시. )

 

 

값 타입

- 값자체가 복사된 것이기 때문에 다른 값에는 영향을 주지 않음 

 

728x90
반응형