zoukankan      html  css  js  c++  java
  • oc基础-self关键字的使用

            

     

    #import <Foundation/Foundation.h>
    
    @interface Student : NSObject
    {
        int _age;
        char *_name;
    }
    - (void) study;
    - (void) run;
    
    + (void) play;
    + (void) run;
    @end
    
    @implementation Student
    - (void) study
    {
          NSLog(@"%s在学习",self->_name);
          [self  run];
         //若在此调用类方法会报错的,因为该self是对象,不能调用类方法
    }
    - (void) run
    {
        NSLog(@"今天有一个学生在跑步");
    }
    
    + (void) play
    {
        NSLog(@"上体育课啦");
       [self run];
       //若在此调用对象方法会报错的,因为该self是指向类,不能调用对象方
    }
    + (void) run
    {
        NSLog(@"开始跑步!");
    }
    @end
    
    int main()
    {
        [Student  play];
       // 结果:上体育课啦
       //       开始跑步!
      Student *stu=[Student new];
      stu->name="aa";
      [stu study];
      //结果:aa在学习
      //     今天有一个学生在跑步
    }

    1.谁调用了self当前所在的方法,self就指向谁(self相当于一个指针)

       当self所在方法是被对象调用,那么self就指向了调用的那个对象

       当self所在的方法是由类调用,那么self就是指向该类

    2.在对象方法中可以使用 self -> 成员变量名  访问类对象中的成员变量

    3.也可以用self调用类方法/对象方法  :[self 方法名](在定义的类中使用)

  • 相关阅读:
    安卓开发_浅谈TimePicker(时间选择器)
    eclipse显示代码行数
    Java数据解析---JSON
    Java数据解析---PULL
    Java数据解析---SAX
    统计机器学习(目录)
    FP Tree算法原理总结
    梯度下降(Gradient Descent)小结
    用scikit-learn和pandas学习线性回归
    用scikit-learn学习BIRCH聚类
  • 原文地址:https://www.cnblogs.com/hui1107464497/p/4496759.html
Copyright © 2011-2022 走看看