Objective

之前我们稍微讲过一些关于成员变量的作用域的知识, 今天我们来复习一下.


例子:

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    @public
    int _age;
    
    @private
    NSString *_name;
    
    @protected
    int _height;
    
}
@end



输出结果:




解释一下:


@public : 在任何地方都能直接访问对象的成员变量

@private : 只能在当前类的对象方法中直接访问(@implementation中默认是@private

@protected : 可以在当前类及其子类的对象方法中直接访问  @interface中默认就是@protected

@package : 只要处在同一个框架中,就能直接访问对象的成员变量 (由于在现实开发中不常用, 所以在这里不解释)


PS:如果什么都不写, 那么默认就是@protected 



补充:

@implementation一样可以声明成员变量

@interface@implementation中不能声明同名的成员变量


OC中的继承是属于单继承, 一个子类只能对应一个父类.





好了, 这次我们就讲到这里, 下次我们继续~~~

原文地址:https://www.cnblogs.com/iOSCain/p/4282842.html