A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

类中不能引用实例变量其实是不准确的,类名不能直接引用实例变量,这样说才准确.类只能通过定义一个对象,或者将对象作为参数传进来时,才能使用对象名来引用实例变量.下面有些代码分享给大家
  1. #import <Foundation/Foundation.h>

  2. @interface Student:NSObject
  3. {
  4.     @public
  5.     int _score;
  6. }
  7. //方法1,可以通过在类方法中定义一个对象,通过对象来访问参数
  8. +(void)study;
  9. -(void)study;
  10. //方法2.可以通过将对象作为参数,通过对象来访问参数
  11. +(void)study:(Student*)student;
  12. @end


  13. @implementation Student
  14. -(void)study{
  15.    
  16.     NSLog(@"什么事情");
  17. }
  18. +(void)study{
  19.    
  20.     Student *student=[Student new];
  21.    
  22.     [student study];
  23.    
  24. //    Student *student =[Student new];
  25. //   
  26. //    student->_score=10;
  27. //    _score = 10;//类方法不能调用实例变量
  28. //   NSLog(@"学习成绩 %d",_score);
  29. }

  30. +(void)study:(Student*)student{
  31.    
  32.     student->_score=10;
  33. }
  34. @end
  35. //无论是通过什么方式,都是通过对象来访问参数

  36. int main(){
  37.    
  38.     @autoreleasepool {
  39.         //这里引用的方法是类方法+(void)study,类方法中调用对象方法-(void)study
  40.         [Student study];
  41.         
  42.     }
  43.    
  44.     return 0;
  45. }
复制代码

3 个回复

倒序浏览
解释的好好,赞。
回复 使用道具 举报

回帖奖励 +1

好棒好棒。。。
回复 使用道具 举报

回帖奖励 +1

哎,无奈啊,学的时间太短,看不懂啊,请谅解。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马