oc23--变量修饰符

//
//  Person.h

#import <Foundation/Foundation.h>

/*
 @public:所有类访问
 @private:本类访问
 @protected:本类子类,默认情况下所有的实例变量都是protected
 @package:包范围,框架范围子类。
 
 实例变量修饰符作用域: 从出现的位置开始, 一直到下一个修饰符出现,如果没有遇到下一个实例变量修饰符, 那么就会修饰后面所有的实例变量
*/
@interface Person : NSObject
{
    @public
    int _age;
    
    @private
    double _height;
    
    @protected
    double _weight;
    
    @package
    NSString *_name;
    NSString *_tel;
    NSString *_email;
}
@end
//
//  Person.m

#import "Person.h"

@implementation Person


- (void)test
{
    NSLog(@"%f", _weight);
}
@end
//
//  Student.h

#import <Foundation/Foundation.h>
#import "Person.h"

@interface Student : Person

@end
//
//  Student.m

#import "Student.h"

@implementation Student

- (void)test
{
    NSLog(@"%@", _name);
}
@end
//
//  main.m
//  实例变量修饰符

#import <Foundation/Foundation.h>
#import "Person.h"
#import "Student.h"

int main(int argc, const char * argv[]) {
    
    Person *p = [Person new];
//    p->_age = 30;
//    p->_height = 1.75;
//    p->_weight = 60.0;
//    p->_name = @"lnj";
    
    Student *stu = [Student new];
    NSLog(@"-----");
    return 0;
}

 

posted @ 2017-08-22 20:41  无天666  阅读(197)  评论(0编辑  收藏  举报