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 方法名](在定义的类中使用)

  • 相关阅读:
    虚方法、重写方法以及抽象类的知识小结
    DateTime时间格式
    JavaScript中Eval()函数的作用
    JQuery Event属性说明
    正则表达式30分钟入门教程
    dwz的form表单中url的变量替换
    dwz中权限的控制
    Dwz下拉菜单的二级联动
    Win7下用IIS发布网站
    IntelliJ IDEA 常用快捷键列表及技巧大全
  • 原文地址:https://www.cnblogs.com/hui1107464497/p/4496759.html
Copyright © 2011-2022 走看看