1. swift에서 제공하는 접근제어자
- open
- 모든 외부 모듈에서 접근 가능 (가장 개방적인 접근 수준)
class에서만 사용 가능 (상속, 재정의 가능하기 때문)
- public
- 모든 외부 모듈에서 접근 가능 (가장 개방적인 접근 수준)
open과 달리 class, enum, struct 모두 사용 가능
- internal
- 접근제어자를 설정하지 않은 기본값 상태
- 동일 모듈에서 접근 가능
- fileprivate
- private
- 가장 제한적인 접근 제어자
priave을 선언한 스코프(코드블록)에서만 사용 가능
struct에서 private 프로퍼티가 있다면 멤버와이즈 불가로 직접 초기화 해야함
struct Person {
var name: String
public var age: Int
private var havingMoney: Int
init(name: String, age: Int, havingMoney: Int) {
self.name = name
self.age = age
self.havingMoney = havingMoney
}
private func printMoney() {
print("나는 \(havingMoney) 원 있다!")
}
func test() {
printMoney()
}
}
let person = Person(name: "harry", age: 20, havingMoney: 3000)
person.test()
person.age
person.havingMoney
person.printMoney()