----------------------
ASP.Net+Unity开发、
.Net培训、期待与您交流! ----------------------
类方法和对象方法的总结:
类方法和对象方法很像,并且函数除了类型前面有点区别,其他都基本上一样。类方法是类型前加一个“+”,而对象方法则是前面加一个“-”,他们之间很像但是又有很大区别。首先使用的时候,如果方法中不需要成员变量的话,可以使用类方法来处理;反之用对象方法处理。在main函数中,对象不能调用类方法,而类也不能调用对象方法。我们看起来类更像一个工具。可是他们的优势又是什么呢?类方法可以使程序的效率更高,因为不需要创建对象,所以不用浪费内存,运行更快。而对象方法则可以使用成员变量,比工具使用面更广,看用户需求决定用对象方法还是类方法。
@interface JiShu : NSObject // 声明类方法和对象方法(注意"-"和"+")
+ (int)sumOfNum1 : (int)num1 andNum2 : (int)num2;
- (int)averageOfNum1 : (int)num1 andNum2 : (int)num2;
@end
@implementation JiShu // 类方法和对象方法的实现
+ (int)sumOfNum1 : (int)num1 andNum2 : (int)num2 // 注意:类方法不能使用实例变量
{
return num1 + num2;
}
- (int)averageOfNum1 : (int)num1 andNum2 : (int)num2
{
return num1 + num2;
}
@end
int main()
{
[JiShu sumOfNum1 : 10 andNum2 : 20];
[JiShu averageOfNum1 : 10 andNum2 : 20]; //错误,类不能调用对象方法
JiShu *p = [JiShu new];
[p averageOfNum1 : 10 andNum2 : 20];
[p sumOfNum1 : 10 andNum2 : 20]; //错误,对象不能调用类方法
}
(强调) 需要注意的地方:
1、类方法可以调用类方法。
2、类方法不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法。
3、类方法不可以使用实例变量。类方法可以使用self。
4、类方法作为消息,可以被发送到类或者对象里面去(实际上,就是可以通过类或者对象调用类方法的意思)。
与类方法相比,对象方法基本上没有什么限制:
1 对象方法可以引用对象变量,也可以引用类变量
2 对象方法中可以调用类方法
3 对象方法中可以使用super关键字。
1 对象方法可以引用对象变量,也可以引用类变量
2 对象方法中可以调用类方法
3 对象方法中可以使用super关键字。
---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------详细请查看: www.itheima.com