Objective-C 自动生成属性的存取方法
在接下来的时间里面,我们准备为大家介绍Objective-C中的"自动生成属性的存取方法"。
在前面的学习中,我们已经接触过类中的属性与方法,同时,也知道一个方法必须是通过定义与实现以后才可以调用的,但是,在接下来的时间里面,我们准备为大家介绍另一种访问属性的方法,而种方法是由Objective-C为属性自动生成对应的‘存’与‘取’这两个方法,然后,我们通过程序去调用它就可以对属性进行存取操作了。
首先,我们来看看用于自动生成属性存取方法的关键字:
(1)@property,该关键字说明它后面的属性,将会让Objective-C为其自动生成‘存’与‘取’两个方法。
(2)@synthesize,该关键字说明,生成一个set+属性名的方法用于设置属性中的值,
另外,再生成一个属性名的方法,用于返回属性中的值。
假设有属性X,那么,就自动生成 - setX(int) 与 - X()这两个方法,
但是,这两个方法,我们是看不到,
但是,我们可以按照前面学习的方法调用格式去调用它们,同时,它们都是对象方法。
接下来,我们结合例子作进一步的学习。
@interface Role : NSObject //定义了类Role,并继承了根类NSObject
{
@public //公有
int x;
int y;
int pow;
}
@property int x ,y; //通过关键字@property来说明属性x 与 y将会自动生成存与取两个方法
@end
//===================//
//---实现Role类中的方法--//
//===================//
@implementation Role
@synthesize x ,y; //通过关键字@synthesize来说明为属性x与y生成对应的方法,
而方法分别是 - setx(int ) 与 -x()
以及方法 - sety( int ) 与 -y()
@end
//入口函数main
int main ( int argc, const char * argv[] )
{
Role *m1 = [ [ Role alloc ] init ]; //定义对象 m1 并分配了内存空间。
[ m1 setX:100 ]; //正确,调用自动生成的属性方法setX并通过参数传递100给属性 x 。
[ m1 setY:100 ]; //正确,调用自动生成的属性方法setY并通过参数传递100给属性 y 。
int k = [ m1 x ]; //正确,调用自动生成的属性方法 x ,并返回 x 中的属性值,
然后,保存到变量 k 中,所以,k变量中的值等于100。
中括号里面的 x 是自动生成的方法名。
int d = [ m1 y ]; //正确,调用自动生成的属性方法 y ,并返回 y 中的属性值,
然后,保存到变量 d 中,所以,d 变量中的值等于100。
中括号里面的 y 是自动生成的方法名。
return 0;
}
非常好,现在,我们已经掌握了Objective-C中的“自动生成属性的存取方法”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)