OC语言-self

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;
}
@end

int 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;
}	



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值