public private protected和默认的区别

 我来答
C我想我是海
2016-04-12 · 知道合伙人软件行家
C我想我是海
知道合伙人软件行家
采纳数:1187 获赞数:4514
IT工程师

向TA提问 私信TA
展开全部

public private protected和package都是系统的实例变量的范围类型。

为了强制一个对象隐藏其数据,编译器限制实例变量范围以限制其在程序中的可见性。

具体区别如下:

  1. @private

    实例变量只能被声明它的类访问

    The instance variable is accessible only within the class that declares it.

  2. @protected

    实例变量能被声明它的类和子类访问,所有没有显式制定范围的实例变量都是@protected

    The instance variable is accessible within the class that declares it and within classes that inherit it. All instance variables without an explicit scope directive have  @protected scope.

  3. @public

    实例变量可以被在任何地方访问。

    The instance variable is accessible everywhere.

  4. @package

    Using the modern runtime, an @package instance variable has @public scope inside the executable image that implements the class, but acts like @private outside.使用modern运行时,一个@package实例变量在实现这个类的可执行文件镜像中实际上是@public的,但是在外面就是@private。Objective-C中的@package与C语言中变量和函数的private_extern类似。任何在实现类的镜像之外的代码想使用这个实例变量都会引发link error这个类型最常用于框架类的实例变量,使用@private太限制,使用@protected或者@public又太开放

  

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式