黑马程序员技术交流社区
标题: 对于类方法及对象方法的总结 [打印本页]
作者: supergcs 时间: 2014-11-15 00:32
标题: 对于类方法及对象方法的总结
本帖最后由 supergcs 于 2014-11-15 00:41 编辑
- #import <Foundation/Foundation.h>
- @interface Calculator : NSObject{
- int _sum;//和
- }
- //求和
- //对象方法
- -(int)sumWithNumber1:(int)number1 andNumber2:(int)number2;
- //类方法的规则:1.以+号开头 2.其他的规则与对象方法相同
- +(int)sumWithNumber3:(int)number3 andNumber4:(int)number4;
- //求平均值
- -(int)averageWithNumber1:(int)number1 andNumber2:(int)number2;
- +(int)averageWithNumber3:(int)number3 andNumber4:(int)number4;
- +(void)test;
- //求差
- -(int)subWithNumber1:(int)number1 andNumber2:(int)number2;
- +(int)subWithNumber1:(int)number1 andNumber2:(int)number2;
- @end
- #import "Calculator.h"
- @implementation Calculator
- //对象方法求和
- //number1 = 2 number2 = 4
- -(int)sumWithNumber1:(int)number1 andNumber2:(int)number2{
-
- //成员变量可以在对象方法中使用
- _sum = number1 + number2;
-
- return _sum;
- }
- //类方法求和
- +(int)sumWithNumber3:(int)number3 andNumber4:(int)number4{
- //当一个方法当中要使用成员变量的时候,不能用类方法。原因:成员变量的存在依附于对象,在使用类方法的时候,并没有创建对象,所以类方法当中不能使用成员变量。
-
-
- // _sum = number3 + number4;
- return number3 + number4;
- }
- //对象方法调用自己的类方法
- -(int)averageWithNumber1:(int)number1 andNumber2:(int)number2{
-
- int sum2 = [Calculator sumWithNumber3:number1 andNumber4:number2];
-
- return sum2/2;
- }
- //通过self关键字实现 对象方法调用自己的对象方法
- //-(int)averageWithNumber1:(int)number1 andNumber2:(int)number2{
- // [self sumWithNumber1:number1 andNumber2:number1];
- // return (number1 + number2)/2;
- //}
- +(int)averageWithNumber3:(int)number3 andNumber4:(int)number4{
-
- int sum1 = [Calculator sumWithNumber3:number3 andNumber4:number4];
-
- return sum1/2;
- }
- +(void)test{
-
- NSLog(@"进来了");
-
- [Calculator test];
- }
- -(int)subWithNumber1:(int)number1 andNumber2:(int)number2{
-
- return number1 - number2;
- }
- +(int)subWithNumber1:(int)number1 andNumber2:(int)number2{
-
- return number1 - number2;
- }
- @end
复制代码总结:
一、 对象方法
-(void)lookMyPhone;
1、以-号开头
2、里面可以使用成员变量
3、用对象来调用
4、对象方法可以调用类方法和对象方法
二、 类方法
- +(NSString *)colorWithEnumColor:(Color)color;
复制代码1、以+号开头
2、不可以使用成员变量
3、类名来调用
4、可以作为工具方法
*类方法在调用类方法的时候,不能自己调自己,会造成死循环
*区分同名的对象方法和类方法:根据方法前面的标识符
使用场景:
尽量使用类方法(类方法可以节省内存空间,提高效率)
当有成员变量时,不用使用类方法
作者: 许庭洲 时间: 2014-11-18 09:02
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |