Objective-C基础—变量和数据类型

1.控制实例变量作用域的指令

我们知道实例变量的作用域只限于为该类定义的实例方法。因此,任何实例方法都能通过变量名来访问该类的实例变量,而无需进行特殊操作。

在接口中声明的实例可通过子类进行继承。继承来的实例变量同样可以通过变量名在该子类定义的方法中直接访问。

在接口部分声明实例变量时,可通过以下指令来控制其作用域:

@protected——这个指令后面的实例变量可被改类及任何子类中定义的方法直接访问。在接口部分定义的实例变量默认是这种作用域。

@private——这个指令后面的实例变量可被定义在该类的方法直接访问,但是不能被子类定义的方法直接访问。在实现部分定义的实例变量默认是这种作用域。

@public——这个指令后面的实例变量可被该类中定义的方法直接访问,也可被其它类或模块中定义的方法直接访问。(不建议,违反封装性)

显性声明事例代码如下:

@interface Printer
{
  @private
     int pageCount;
     int tonerLevel;
  @protected
     //其它实例变量

}

2.关于属性,存取方法和实例变量

@synthesize指令:@synthesize window=_window;表明合成(synthesize)属性window的取值(set)和设置方法(get),并将属性与实例变量_window(实例变量并没有显性声明)关联起来。这对区别属性和实例变量的使用是有帮助的,鼓励通过设置方法来设置实例变量的值,通过取值方法来获取实例变量。

[window makeKeyAndVisible];//无法运行window是属性而非实例变量。
//可使用
[_window makeKeyAndVisible];
//最好使用获取函数
[self.window makeKeyAndVisible];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值