OC之方法的声明实现和调用

时间:2023-03-08 15:42:12

1. 类是来描述一群具有相同特征和行为的事物的.

类还有行为.

类的声明

@interface 类名 : NSObject

{

属性.

}

方法的声明

@end

类的实现.

@implementation 类名

方法的实现

@end

前面只描述了这个类所拥有的共同的特征.使用属性来描述.

类还有行为.

行为在类中用方法来表示. 和函数特别像.

在类中创建方法来代表类的行为,分两个步骤

1). 方法的声明

写在@interface的大括弧的外面.

2). 方法的实现.

写在@implementation中.

2. 无参数的方法的声明.

1). 位置:@interface的大括弧的外面.

2). 声明的语法:

- (返回值类型)方法名称;

- (void)run;

3). 方法实现.

将方法头拷贝到@implemetation中 删除分号.补大括弧.

将方法的实现写在大括弧之中.

- (void)run

{

代码实现.

}

4). 如何调用

类中的方法不能直接调用.因为类不能直接使用.

如果非要用的话,就得创建这个类的对象.

对象中有类所定义的所有的东西,包括属性和方法.

这个时候,就要可以调用对象中的方法.

调用格式:

[对象名 方法名];

3. 带1个参数的方法的声明

1). 位置:@interface的大括弧的外面.

2). 声明的语法:

- (返回值类型)方法名:(参数类型)形参名称;

- (void)eat:(NSString *)foodName;

3). 实现.

将方法头拷贝到@implemetation中 删除分号.补大括弧.

将方法的实现写在大括弧之中.

在方法实现中可以直接使用参数的值.

4). 调用

类中的方法不能直接调用.因为类不能直接使用.

如果非要用的话,就得创建这个类的对象.

对象中有类所定义的所有的东西,包括属性和方法.

这个时候,就要可以调用对象中的方法.

调用带1个参数的方法:

[对象名 方法名:实参];

4. 带多个参数的方法的声明

1). 位置:@interface的大括弧的外面.

2). 声明语法格式:

- (返回值类型)方法名:(形参类型)形参名1 :(形参类型)形参名2 :(形参类型)形参名3;

- (int)sum:(int)num1 :(int)num2;

3). 实现

将方法头拷贝到@implemetation中 删除分号.补大括弧.

将方法的实现写在大括弧之中.

在方法实现中可以直接使用参数的值.

4). 调用

类中的方法不能直接调用.因为类不能直接使用.

如果非要用的话,就得创建这个类的对象.

对象中有类所定义的所有的东西,包括属性和方法.

这个时候,就要可以调用对象中的方法.

调用带多个参数的方法:

[对象名 方法名:实参1 :实参2 :实参3];

5. 使用注意.

1). 关于方法的名称

- (void)run; 这个方法的名称叫做run

- (void)eat:(NSString *)foodName; 这个方法的名称叫做eat:

- (int)sum:(int)num1 :(int)num2; 这个方法的名称叫做 sum: :

如果方法没有参数,那么这个方法的名字就是这个方法的名字.

如果方法有参数,那么方法的名字带了冒号的.

2). 带参数的方法的命名规范.

a. 如果我们的方法只有1个参数. 建议这个方法的名字.

xxxWith:

这么做的的话.那么在调用方法的时候,整个看起来就像是1条完整的语句.

xxxWithxxx:

b. 如果方法有多个参数.建议这个方法的名字.

xxxWith:(参数类型)实参名称 and:(参数类型)实参名称;

建议:

xxxWith参数1: and参数2: and参数3:

c. 最重要的是让在调用方法的时候,可以看起来是1条完整的语句.

d. 注意.关于方法名称

- (void)eat:(NSString *)foodName;  eat:

- (void)eatWith:(NSString *)foodName;  eatWith:

- (void)eatWithFood:(NSString *)foodName;  eatWithFood:

- (int)sum:(int)num1 :(int)num2;    sum: :

- (int)sumWith:(int)num1 and:(int)num2; sumWith: and:

- (int)sumWithNum1:(int)num1 andNum2:(int)num2;  sumWithNum1: andNum2: