【Objective-C】self关键字

前言:OC中有一个self关键字,用法跟Java中的this类似,都是代表着当前方法的调用者。但self和this还是有区别的

1、 java中的this只能在动态方法中,静态方法中不能使用;

2、 OC中的self既可以在动态方法中,也可以用在静态方法中;

一、Java中的this只能用在动态方法中,不能用在静态方法

       1、在动态方法中使用this关键字

public class Student {
    private int age;
    public void setAge(int age) {
        this.age = age;
    }
}
这里的this代表着调用setAge方法的某个Student对象
        2、要是在静态方法中使用this,会直接报错

二、OC中的self既可以用在动态方法中,也可以用在静态方法中

       1、self在动态方法中

@implementation Student

- (void)test2 {

}

- (void)test3 {
    [self test2];
}

@end
self关键字,这里的self代表着调用test3方法的某个Student对象

第8行代码的作用是调用Student对象的动态方法test2   

       2、self在静态方法中

@implementation Student

+ (void)test2 {

}

+ (void)test3 {
    [Student test2];
    
    [self test2];
}

@end
这里定义的是静态的方法,看方法前面的符号“+”,在前面我们知道: self代表着当前方法的调用者。当前方法是test3,那test3的调用者是谁呢?(静态方法)肯定是Student这个类,因为test3是个静态方法。因此这里的self代表着Student这个类. 因此,第8行、第10行的作用是一样,都是调用了静态方法test2

        3、总结

      1> 在动态方法中,self代表着"对象"

      2> 在静态方法中,self代表着"类"

      3> 一句话总结就是:self代表着当前方法的调用者


    感谢互联网~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值