带有参数和返回值的对象方法

# 按要求设计一个计算器类 #

属性: 无.

功能: 1) 返回派的值. 2) 计算一个整数的平方. 3) 计算两个整数的和. 

// 按要求设计计算器类

// 类的声明
#import <Foundation/Foundation.h>
@interface Calculator : NSObject 
// 没有属性不用写大括号{}
- (double) pi;
- (int) square:(int)num;    // 关于方法名的说明见下面
- (int) sumOfNum1:(int)num1 andNum2:(int)num2;    // 多个参数方法的写法注意见下面 
@end

// 类的实现
@implementation Calculator
- (double) pi {
        return 3.14159;
}
- (int) square:(int)num {
        return num * num;
}
- (int) sumOfNum1:(int)num1 andNum2:(int)num2 {
        return num1 + num2;
}
@end

// 类的调用
int main() {
        Calculator *cal = [Calculator new];

        double p = [cal pi];
        int sq  = [cal square:5];
        int sum = [cal sumOfNum1:5 andNum2:10];

        NSLog(@"The value of pi is %f", p);
        NSLog(@"Square of 5 is %d.", sq);
        NSLog(@"Sum of 5 and 10 is %d.", sum);

        return 0;
}

 

# 关于方法名 #

- (int) square:(int)num; 这个方法的方法名是 square: 冒号是方法名的一部分. 比如 - (int) square; 这个方法的方法名是 square. 这两个方法的名称是不一样的. 

- (int) sumOfNum1:(int)num1 andNum2:(int)num2;  这个方法的方法名是 sumOfNum1:andNum2:  

加减号不是方法名的一部分, 而是方法类型. 

 

# 关于有多个参数方法的写法 #

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

1) 每个形参名称后面要有空格, 和后面的方法名部分分隔

2) 可以不写and部分, 比如- (int) sum:(int)num1 :(int)num2; 但是可读性不好. 苹果推荐把方法名写的可读性很好, 就是看到方法名就知道输入什么样的参数. 有的方法名长得像句子一样, 但是可读性很好.

 

posted on 2014-05-25 15:33  小兔儿爷的iOS魔法书  阅读(227)  评论(0)    收藏  举报

导航