Objective-C Code
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
#import <Foundation/Foundation.h> /* 对象方法 1> 减号 - 开头 2> 只能由对象来调用 3> 对象方法中能访问当前对象的成员变量(实例变量) 类方法 1> 加号 + 开头 2> 只能由类(名)来调用 3> 类方法中不能访问成员变量(实例变量) 类方法的好处和使用场合 1> 不依赖于对象,执行效率高 2> 能用类方法,尽量用类方法 3> 场合:当方法内部不需要使用到成员变量时,就可以改为类方法 可以允许类方法和对象方法同名 */ @interface Person : NSObject { int age; } // 类方法都是以+开头 + ( void)printClassName; - ( void)test; + ( void)test; @end @implementation Person + ( void)printClassName { // error:instance variable 'age' accessed in class method // 实例变量age不能在类方法中访问 //NSLog(@"这个类叫做Person-%d", age); } - ( void)test { NSLog(@ "111-%d", age); //[Person test]; } + ( void)test { // 会引发死循环 //[Person test]; NSLog(@ "333"); // 会引发死循环 // /[Person test]; } @end int main() { //[Person printClassName]; [Person test]; //Person *p = [Person new]; //[p test]; /* -[Person printClassName]: unrecognized selector sent to instance 0x7fa520c0b370 */ // 系统会认为现在调用的printClassName是个对象方法 //[p printClassName]; return 0; } |
设计一个Caculator计算器类,它拥有计算的功能(行为)
不带参数的方法
u 设计一个返回PI的方法
// 方法声明
- (double)pi;
// 方法实现
- (double)pi
{
return 3.14;
}
方法的调用:
带一个参数的方法
u 设计一个计算平方的方法
// 方法声明
- (double)square:(double)number;
// 方法实现
- (double)square:(double)number
{
return number * number;
}
方法调用
带多个参数的方法
u 设计一个计算和的方法
// 方法声明
- (double)sumOfNum1:(double)num1 andNum2:(double)num2;
// 方法实现
- (double)sumOfNum1:(double)num1 andNum2:(double)num2
{
return num1 + num2;
}
方法的调用
方法名注意
冒号也是方法名的一部分
同一个类中不允许两个对象方法同名