@private@protected@public@package
@private@protected@public@package
为了强制一个对象隐藏其数据,编译器限制实例变量范围以限制其在程序中的可见性
但是为了提供灵活性,苹果也让开发者显式设置范围(四选一)
Directive |
Meaning |
@private |
实例变量只能被本类自身访问 |
@protected |
实例变量只能被声明它的类访问 实例变量能被声明它的类和子类访问,所有没有显式制定范围的实例变量都是 |
@public |
实例变量可以被在任何地方访问。 |
@package |
使用modern运行时,一个@package实例变量在实现这个类的可执行文件镜像中实际上是@public的,但是在外面就是@private【runtime需要再看一下苹果文档Runtime Programming Guide】 Objective-C中的@package与C语言中变量和函数的private_extern类似。任何在实现类的镜像之外的代码想使用这个实例变量都会引发link error 这个类型最常用于框架类的实例变量,使用@private太限制,使用@protected或者@public又太开放 |
//使用示例
{
@private
int privateNum;
@protected
int protectedNum;
@public
int publicNum;
@package
int packageNum;
}
@private@protected@public@package的更多相关文章
- oc 中四种实例变量的范围类型@private@protected@public@package
To enforce the ability of an object to hide its data, the compiler limits the scope of instance vari ...
- iOS中四种实例变量的范围类型@private@protected@public@package
文档上记录是这样的 The Scope of Instance Variables Toenforce the ability of an object to hide its data, the c ...
- private,protected,public和default的区别
private,protected,public和default的区别 除了default以外,其他都是Java语言的关键字.default代表的是对类成员没有进行修饰的情况.它本身也代表了一种访问控 ...
- 对private protected public的详解:
#include <iostream> #include <stack> #include <queue> #include <exception> # ...
- Java中的private protected public和default的区别
转至:http://blog.sina.com.cn/s/blog_74c571240101jaf5.html 类内部 本包 子类 外部包 public √ √ √ √ pro ...
- 2.匿名类,匿名类对象,private/protected/public关键字、abstract抽象类,抽象方法、final关键字的使用,多线程Thread类start方法原理
package com.bawei.multithread; //注意:模板方法我们通常使用抽象类或者抽象方法!这里我们为了方便在本类中使用就没有使用抽象类/抽象方法 public class Tem ...
- @private @protected @public
@private 作用范围仅仅在自身类 @protected 作用范围在自身类及继承自己的子类(默认属性) @public 在系统中的不论什么地方都能够使用
- 【Java】abstract,final,static,private,protected,public的区别
[abstract]抽象的 1. abstract可以修饰类和成员方法,被abstract修饰的类称为抽象类,被abstract修饰成员方法叫抽象方法.抽象类不一定有抽象方法,但拥有抽象方法的类一定是 ...
- java: private, protected, public
这三个 「可访问修饰符」,是一个老生常谈的话题了.在 C++ 中也有类似的概念. 按其修饰对象的不同,分为几种用法小记一下: 用于类 只有 public 可以修饰类:private 和 protect ...
随机推荐
- [Xcode 实际操作]六、媒体与动画-(11)UIView视图卷曲动画的制作
目录:[Swift]Xcode实际操作 本文将演示UIView视图卷曲动画的制作. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit cla ...
- 对于BeanUtils类的方法populate的一些个人拙见
今天在做一个登录案列,期间涉及到了BeanUtils类,这个类也是第一次涉及到,视频没有细讲.只能自己摸着石头过河.慢慢思考.下面来说一下自己个人对这个类的方法populate的理解 这个类应该不是单 ...
- 解决import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;报错的问题
在项目中用到这两个Jar包,但是程序报错. Access restriction: The type BASE64Decoder is not accessible due to restrictio ...
- 题解 P1016 旅行家的预算
题目传送门(以纪念调了两个半小时的单调队列) emmm这题单调队列可海星... 因为每个点有油量无限的,但是油箱容量是无限的(正好反的一道题 SP348 EXPEDI - Expedition) 所以 ...
- 2017浙江工业大学-校赛决赛 XiaoWei的战斗力
Description XiaoWei沉迷RPG无法自拔,但是他的战斗力只有5,所以他决定氪金提升战斗力.XiaoWei购买了n个福袋.打开1个福袋后,有以下三种情况出现:1.获得屠龙宝刀,概率为p1 ...
- Jmeter将JDBC Request查询结果作为下一个接口参数方法
现在有一个需求,从数据库tieba_info表查出rank小于某个值的username和count(*),然后把所有查出来的username和count(*)作为参数值,用于下一个接口. tieba_ ...
- pytorch 安装错误,报 GLIBCXX_3.4.20 错误
pytorch 从源码安装 链接:http://blog.csdn.net/u012442157/article/details/78134888 发现错误: 解决方案: http://blog.cs ...
- u-boot剖析(一)----Makefile分析
由于u-boot比较庞大,所以我们分开来分析,对于一个大型的项目我们想快速的了解其代码架构和内容,最方便的方法就是分析Makefile,所以我们今天以三星的s3c2440来分析Makefile.我们今 ...
- BZOJ 1806: [Ioi2007]Miners 矿工配餐
ime Limit: 10 Sec Memory Limit: 64 MBSubmit: 910 Solved: 559[Submit][Status][Discuss] Description ...
- 在广州学习PHP零基础可以学习吗?
PHP现今作为互联网运用很广泛的编程语言,市场需求量也越来越高,而PHP开发工程师的薪资也是一路水涨船高,更多的人看到了PHP的发展前景,纷纷都想投入到PHP的开发大军中来,那么对于很多转行或者零基础 ...