- /*
- 对象方法
- 1> 减号 - 开头
- 2> 只能由对象来调用
- 3> 对象方法中能访问当前对象的成员变量(实例变量)
-
- 类方法
- 1> 加号 + 开头
- 2> 只能由类(名)来调用
- 3> 类方法中不能访问成员变量(实例变量)
- 类方法的好处和使用场合
- 1> 不依赖对象,执行效率高
- 2> 能用类方法尽量用类方法
- 3> 场合:当方法内部不需要使用成员变量时,就可以改为类方法
-
- 可以允许诶方法和对象方法同名
- */
- /*
- 设计一个计算器类
- *求和
- *求平均值
- */
- #import <Foundation/Foundation.h>
- //工具类:基本没有任何成员变量,里面的方法基本都是类方法
- @interface Caculator : NSObject
- //求和类方法的声明
- +(int)sumWithNum1:(int)num1 andNum2:(int)num2;
- //求平均值类方法的声明
- +(int)averageWithNum1:(int)num1 andNum2:(int)num2;
- //求积的类方法的声明
- +(int)multiplyWithNum1:(int)num1 andNum2:(int)num2;
- @end
- @implementation Caculator
- //求和类方法的实现
- +(int)sumWithNum1:(int)num1 andNum2:(int)num2
- {
- return num1 + num2;
- }
- //求平均值类方法的实现
- +(int)averageWithNum1:(int)num1 andNum2:(int)num2
- {
- //调用类方法求和 然后再用 求和值 去求 平均值
- int sum = [Caculator sumWithNum1:num1 andNum2:num2];
- //
- return sum / 2;
- }
- //求积类方法的实现
- +(int)multiplyWithNum1:(int)num1 andNum2:(int)num2
- {
- return num1 * num2;
- }
- @end
- int main()
- {
- //调用类方法求和
- int sum = [Caculator sumWithNum1:10 andNum2:13];
- NSLog(@"sum = %d",sum);
- //调用类方法求平均值
- int average = [Caculator averageWithNum1:10 andNum2:12];
- NSLog(@"average = %d",average);
- //调用类方法求积
- int multiply = [Caculator multiplyWithNum1:3 andNum2:4];
- NSLog(@"multiply = %d",multiply);
- return 0;
- }
复制代码
使用类方法可以提高代码性能。不像对象方法一样,需要重新申请内存空间。但是类方法用在基本没有任何成员变量的时候。
|
|