OC语言中的方法

 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;

}




方法的调用





 方法名注意

 冒号也是方法名的一部分

 同一个类中不允许两个对象方法同名





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值