self的作用
1、self在对象方法中,它是调用这个方法的对象
2、self在类方法中就代表类,它可以调用其他的类方法
总结:
1、self在对象方法中,它是调用这个方法的对象
2、self在类方法中就代表类,它可以调用其他的类方法
总结:
谁调用这个方法那么self就是谁
#import <Foundation/Foundation.h> //--------main函数
#import "LSPerson.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
LSPerson *p = [[LSPerson alloc] init];
[p changAge:10];
NSLog(@"%d",[p age]);//打印50
int rs = [LSPerson sumOfNum:10 andOther:20];
NSLog(@"%d",rs); //打印30
rs = [LSPerson averageOfNum:10 andOther:20];
NSLog(@"%d",rs); //打印15
}
return 0;
}
#import <Foundation/Foundation.h>//--------LSPerson.h
@interface LSPerson : NSObject
{
int _age;//年龄
}
- (void) changAge:(int) age;
- (void) setAge:(int) age;
- (int) age;
+ (int) sumOfNum:(int) num1 andOther:(int)num2; //求和类方法
+ (int) averageOfNum:(int) num1 andOther:(int) num2;//求平均类方法
@end
/* --------LSPerson.m
局部变量、成员变量和全局变量
1、在方法内部可以定义与成员变量同名局部变量,
那么在这个局部变量的作用域范围内他会覆盖成员变量
2、如果定义与成员变量同名局部变量,还想操作局部变量;通过self来访问
3、全局变量,整个文件共享的,所有方法中共享的;
那么一个方法中修改这个全局变量其他方法中使用这个全局变量都会修改
4、变量作用域中存在一个原则:就近原则
查找的顺序 局部变量 -》 成员变量 -》 全局变量
self与方法
1、self在对象方法中,它是调用这个方法的对象
2、self在类方法中就代表类,它可以调用其他的类方法
总结:
谁调用这个方法那么self就是谁
*/
#import "LSPerson.h"
@implementation LSPerson
- (void) changAge:(int) age{
_age = age;
NSLog(@"%d",_age);//打印10
int _age = 20; //定义了同名的局部变量,会覆盖成员变量
NSLog(@"%d",_age);//打印20
self->_age = 50;//可以同self调用,来解决同名问题
}
- (void) setAge:(int) age{
_age = age;
}
- (int) age{
return _age;
}
+ (int) sumOfNum:(int) num1 andOther:(int)num2{
return num1 + num2;
}
+ (int) averageOfNum:(int) num1 andOther:(int) num2{
return [self sumOfNum:num1 andOther:num2] / 2; //这里的self代表LSPerson类
}
@end