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

  • 相关阅读:
    Linux常见故障及修复方法
    2019/作业
    使用net 模式上网的步骤
    2019 年 1
    处理请求数据
    REST 表现层状态转化
    @RequestMapping注解的属性,将请求约束精细化
    SpringMVC 概述
    基于XML文档的声明式事务配置
    事务@Transactional注解的属性
  • 原文地址:https://www.cnblogs.com/hui1107464497/p/4496759.html
Copyright © 2011-2022 走看看