Objective-C 方法
在接下来的时间里面,我们准备为大家介绍Objective-C中的方法,而什么是方法呢?其实,“方法”就是我们日常生活中所说的“行为”。
那么,我们人类有哪些行为呢?一般情况下,我们人类可以做出以下的行为,例如:行走,跑步,攻击,防御,攀爬,开车,开飞机,开船,开火箭等都是我们人类可以做到的“行为”。
而鱼类有哪些行为呢?一般情况下,鱼类可以做出以下的行为,例如:游泳,但鱼类不能开车,不能开飞机,不能开船。
再举一个例子,例如熊类有哪些行为呢?一般情况下,熊类可以做出以下的行为,例如:行走,跑步,攻击,防御,还有就是冬眠,而冬眠这种行为,人类是没有的。
通过上面所举的例子,相信大家就可以了解到什么是Objective-C中的“方法”,而在接下来的时间里面,我们就需要学习一下,从代码方面如何去描述“方法”。
“方法定义的语法格式”,如下:
@interface 类名
{
-(返回值类型) 方法名: (参数类型) 参数名1: (参数类型) 参数名n;
+(返回值类型) 方法名: (参数类型) 参数名1: (参数类型) 参数名n;
};
@end
语法格式分析:
(1)方法的定义必须在类中定义。
(2)语法格式中,前面的减号“-”代表该方法通过对象来调用。
语法格式中,前面的加号“+”代表该方法通过类来调用。
(3)返回值类型,就是我们前面学习过的变量类型,int , float , char 等的关键字。
返回值类型,两边都要加上小括号()格式要求不能省略。
(4)方法名,按变量名命名规则定义即可。
(5)一个冒号,格式要求,不能省略。
(6)参数类型,就是我们前面学习过的变量类型,int , float , char 等的关键字,以及void类型表示
不用返回任何类型值。
参数类型,两边都要加上小括号()格式要求不能省略。
(7)参数名,按变量命名规则定义即可。
(8)一个冒号,用于不同参数之间的分隔,如果只有一个参数,就不用加冒号。
(9)一个分号,用于描述方法定义结束。
在方法定义完毕以后,我们再来看看方法的实现语法格式:
“方法实现的语法格式”,如下:
@implementation 类名
{
-(返回值类型) 方法名: (参数类型) 参数名1: (参数类型) 参数名n
{
方法的主体部分;
}
+(返回值类型) 方法名: (参数类型) 参数名1: (参数类型) 参数名n
{
方法的主体部分;
}
};
@end
语法格式分析:
(1)方法的实现必须在类外定义。
(2)首先,通过@implementation加上类名说明要实现哪个类中的方法,然后,就是一对大括号,
在大括号中就可以去实现已经定义的类中的方法。
(3)写上要实现的方法,必须是类中已经定义好的方法,方法的格式与定义时是一样的,
都要写上-或+、返回类型、方法名:(参数类型)参数名,这些内容必须与方法定义时一致。
(4)加上一对大括号,在大括号中就是方法的主体部分。
(5)通过@end说明实现类中的方法结束。
接下来,我们就通过一个例子来定义一个“角色类”,并在类中定义了两个方法,而这两个方法分别用于描述角色的行走与攻击,这样,在游戏进行时,角色才可以作出移动。
例子:
@interface Role : NSObject //定义了类Role,并继承了父类NSObject
{
@public
int x;
int y;
int pow;
};
- (void) MoveX : (int) mx : (int) my; //定义方法MoveX
+ (void) Attack ; //定义方法Attack
@end
//实现方法
@implementation role
-(void)MoveX:(int) mx : (int) my //实现方法MoveX
{
x = mx + my;
}
+ (void) Attack //实现方法Attack
{
pow = 100;
}
@end
例子分析:
(1)类名定义为Role。
(2)类中定义了两个属性,分别是X与Y。
(3)类中定义了两个方法,分别是MoveX与Attack。
(4)然后,实现了方法MoveX,在方法中,通过接收到的参数mx与my进行了加法运算,并将结果保存
于类中的属性x里面。
(5)然后,再实现了方法Attack,在方法中,对属性y进行了赋值的运算,并将属性y赋值为100。
非常好,现在,我们已经掌握了Objective-C中的“方法”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)