OC语言-self

来源:互联网 发布:医院信息化和大数据库 编辑:程序博客网 时间:2024/05/20 03:47

self是指针,指向方法调用者,指向当前对象

self应用于对象方法或者类方法中,

练习:

//self/*self的用途:1>谁调用了当前的方法,self就代表谁*self出现在对象方法中,self就代表对象*self出现在类方法中,self就代表类2>在对象方法利用"self->_age"访问当前对象内部的成员变量3>[self 方法名]可以调用其他对象方法\类方法self使用注意:不能[self 当前方法名]*/#import <Foundation/Foundation.h>@interface Person : NSObject{int _age;}- (void)setAge:(int)age;- (int)age;- (void)test;+ (void)test;@end@implementation Person- (void)setAge:(int)age{//_age = age;self->_age = age;}- (int)age{//return _age;return self->_age;//死循环//[self age];}- (void)test{//self:指向了方法调用者,代表着当前对象NSLog(@"年龄:%d", self->_age);}- (void)test2{[self test];}+ (void)test{NSLog(@"访问类方法");}+ (void)test2{[self test];}@end/************计算器类(self应用)************************/@interface JiSuanQi : NSObject+ (int)sumOfNum1:(int)num1 andNum2:(int)num2;+ (int)averageOfNum1:(int)num1 andNum2:(int)num2;@end@implementation JiSuanQi+ (int)sumOfNum1:(int)num1 andNum2:(int)num2{return num1 + num2;}+ (int)averageOfNum1:(int)num1 andNum2:(int)num2{int sum = [self sumOfNum1:num1 andNum2:num2];return sum/2;}@endint main(){Person *p = [Person new];[p setAge:10];int a = [p age];[p test];[Person test];[Person test2];[JiSuanQi sumOfNum1:10 andNum2:20];[JiSuanQi averageOfNum1:10 andNum2:20];return 0;}



0 0