본문 바로가기

C/Objective C/Objective C

Objective C Instance 변수의 범위를 조절하는 지시어

인스턴스 변수의 범위를 조절하는 지시어

이제 인스턴스 변수의 범위가 클래스에 정의된 인스턴스 메서드에 의해 제한된다는 것을 안다. 따라서 어 느 인스턴스 메서드든 특별한 방법을 사용하지 않고 인스턴스 변수에 이름으로 직접 접근할 수 있다. 또한, 서브클래스를 통해 상속받은 인스턴스 변수가 있음도 알 것이다. 서브클래스에 정의된 메서드는 상 속받은 인스턴스 변수에 이름으로 직접 접근할 수 있다. 다시 한 번 말하지만, 특별히 다른 무언가를 해주 지 않아도 된다.

인터페이스 부분에서 인스턴스 변수를 선언할 때 선언 앞에 네 가지 지시어를 붙임으로써 범위를 더 상세 히 설정할 수 있다.
□ @protected – 어떤 클래스에서 인스턴스 변수가 정의되었을 때, 그 클래스와 그 서브클래스에 정의된

메서드는 이 인스턴스 변수에 바로 접근할 수 있다. 이것이 기본 값이다.
□ @private – 클래스에 정의된 메서드는 인스턴스 변수에 바로 접근할 수 있지만, 서브클래스의 메서도

는 바로 접근할 수 없다.
□ @public – 인스턴스 변수가 정의된 클래스와 그 밖의 클래스 그리고 모듈에 정의된 메서드라면, 인스

턴스 변수에 바로 접근할 수 있다(어디서든 인스턴스 변수에 접근할 수 있다).
□ @package – 64비트 이미지의 경우, 그 클래스를 구현하는 이미지 안에서는 어디서든 인스턴스 변수

에 접근할 수 있다.