黑马程序员技术交流社区

标题: @public 全局都可以访问 @private 只能在类内部访问 [打印本页]

作者: 0826iOS_sunzhen    时间: 2015-9-9 21:57
标题: @public 全局都可以访问 @private 只能在类内部访问
  1. /*
  2.     @public 全局都可以访问
  3.     @protected 只能在类内部和子类中访问
  4.     @private 只能在类内部访问
  5. */

  6. #import <Foundation/Foundation.h>

  7. @interface Student : NSObject
  8. {
  9.     @public
  10.     NSString *_name;
  11.     NSString *_banJi;
  12.    
  13.     @protected
  14.     NSString *_xueHao;
  15.    
  16.     @private
  17.     int _age;
  18.     float _weight;
  19. }

  20. -(void)setAge:(int)age andWeight:(float)weight;

  21. -(void)info;

  22. @end

  23. @implementation Student

  24. -(void)setAge:(int)age andWeight:(float)weight{
  25.     _age = age;
  26.     _weight = weight;
  27. }

  28. -(void)info{
  29.     NSLog(@"姓名 = %@",_name);
  30.     NSLog(@"班级 = %@",_banJi);
  31.     NSLog(@"年龄 = %d岁",_age);
  32.     NSLog(@"体重 = %.2fkg",_weight);
  33. }

  34. @end

  35. int main(int argc, const char * argv[]) {
  36.     @autoreleasepool {
  37.         
  38.         Student *stu=[Student new];
  39.         
  40.         //_name和_banJi用@public修饰,全局都可以访问
  41.         stu->_name =@"张三";
  42.         stu->_banJi=@"0826基础班";
  43.         
  44.         //_age和_weight用@private修饰,只能在类内部访问,所以使用函数传递值
  45.         [stu setAge:23 andWeight:65.0f];
  46.         
  47.         //打印学生信息
  48.         [stu info];
  49.     }
  50.     return 0;
  51. }
复制代码
继承还没有学习,@protected先留着.......



作者: gpw    时间: 2015-9-9 22:12
还有一个默认权限修饰,并且不同包和同一个包情况也不一样
作者: 0826iOS_sunzhen    时间: 2015-9-9 22:21
gpw 发表于 2015-9-9 22:12
还有一个默认权限修饰,并且不同包和同一个包情况也不一样

恩,百度了一下!貌似还有一个@package,谢谢啦,继续学习
作者: 张健康ios0826    时间: 2015-9-9 23:31
学习力,好厉害啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2