20150616实例变量作用域

//  Person.h
//  IOS150616_ObjectiveC_实例变量的作用域
//
//  Created by qianfeng on 15/6/16.
//  Copyright (c) 2015年 Peng Junlong. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    @protected        //受保护的实例变量,在当前类里面是可以直接访问,在类外面不能直接访问
                      //但是可以通过方法调用间接访问,子类可以直接继承受保护的实例变量
    NSString *_name;
    NSInteger _age;
    @private          //私有的实例变量,在当前类里面是可以直接访问的,在类外面是无法直接访问的,
                      //但是可以通过调用方法间接访问,子类不可以继承私有的实例变量
    float _weight;
    float _height;
    @public           //共有的实例变量在类内类外都可以直接访问,子类也可以直接继承共有的实例变量
    NSInteger _number;
}

//@property关键字默认展开的的实例(实际上是@synthesize展开的)变量是私有的;
@property (copy,nonatomic)NSString *name;
@property (assign,nonatomic)NSInteger age;
@property (assign,nonatomic)float weight;
@property (assign,nonatomic)float height;
//@property (assign,nonatomic)NSInteger number;
- (void)setNumber:(NSInteger)number;
- (NSInteger)number;

- (void)printNumber;
@end
//  Person.m
//  IOS150616_ObjectiveC_实例变量的作用域
//
//  Created by qianfeng on 15/6/16.
//  Copyright (c) 2015年 Peng Junlong. All rights reserved.
//

#import "Person.h"

@implementation Person

- (void)setNumber:(NSInteger)number
{
    _number = number;       //直接访问实例变量
}

- (NSInteger)number
{
    return self->_number;
}

- (void)printNumber
{
    NSLog(@"%ld",[self number]);    //间接访问实例变量
}
@end

//  main.m
//  IOS150616_ObjectiveC_实例变量的作用域
//
//  Created by qianfeng on 15/6/16.
//  Copyright (c) 2015年 Peng Junlong. All rights reserved.
//

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

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Person *zhangSan = [[Person alloc] init];
        //zhangSan->_name = @"xiaoZhang";   //这是无法访问的,_name是由protected修饰的
        zhangSan.name = @"小张";
        zhangSan.age = 23;
        //zhangSan->_weight = 55.34;        //这是无法访问的,_name是由private修饰的
        zhangSan.weight = 55.34;
        zhangSan.height = 177;
        zhangSan->_number = 1234;
        NSLog(@"name = %@,age = %ld,weight = %.3f,height = %.2f,number = %ld",zhangSan.name,zhangSan.age,zhangSan.weight,zhangSan.height,zhangSan.number);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值