• OC语言--self关键字


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

    1.self在动态方法中

     1 @implementation Student
     2 
     3 - (void)test2 {
     4 
     5 }
     6 
     7 - (void)test3 {
     8     [self test2];
     9 }
    10 
    11 @end

    * 在第3行、第8行定义了2个动态方法

    * 在第8行使用了self关键字,这里的self代表着调用test3方法的某个Student对象

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

    2.self在静态方法中

     1 @implementation Student
     2 
     3 + (void)test2 {
     4 
     5 }
     6 
     7 + (void)test3 {
     8     [Student test2];
     9     
    10     [self test2];
    11 }
    12 
    13 @end

    * 在第3、第7行定义了2个静态方法,看清楚方法前面的+号

    * 再看第10行,这里用到了self。看清楚了,是在静态方法test3中用到了self关键字

    * 一开始就说了,self代表着当前方法的调用者。当前方法是test3,那test3的调用者是谁呢?肯定是Student这个类,因为test3是个静态方法。因此这里的self代表着Student这个类

    * 因此,第8行、第10行的作用是一样,都是调用了静态方法test2

    3.self总结

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

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

    3> 万变不离其宗,记住一句话就行了:self代表着当前方法的调用者

  • 相关阅读:
    分小组
    抽签
    快速排序
    Zookeeper一致性协议原理Zab
    Zookeeper架构、ZAB协议、选举
    spring AOP
    spring bean生命周期
    [LeetCode] 35. Search Insert Position ☆(丢失的数字)
    [LeetCode] 29. Divide Two Integers(不使用乘除取模,求两数相除) ☆☆☆
    代理模式和装饰器模式的区别
  • 原文地址:https://www.cnblogs.com/jiqiaochun/p/4716025.html
Copyright © 2020-2023  润新知