您的位置:首页 > 其它

OC4_实例变量的作用域

2015-06-16 16:35 232 查看
//
//  Dog.h
//  OC4_实例变量的作用域
//
//  Created by zhangxueming on 15/6/16.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>

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

//@property 关键字展开的实例变量是私有的

@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


//
//  Dog.m
//  OC4_实例变量的作用域
//
//  Created by zhangxueming on 15/6/16.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import "Dog.h"

@implementation Dog
{
NSInteger abc;
}

- (void)setNumber:(NSInteger)number
{
_number = number;
}

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

- (void)printNumber
{
NSLog(@"number = %li", [self number]);
}

@end


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

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

int main(int argc, const char * argv[]) {
@autoreleasepool {
Dog *xiaoHei = [[Dog alloc] init];
//        xiaoHei->_name = @"小黑";
//        xiaoHei->_age =12;
//        _name = @"xiaohei";
xiaoHei.name =@"小黑";
xiaoHei.age = 12;
NSLog(@"name =%@ age = %li", xiaoHei.name, xiaoHei.age);

xiaoHei.weight = 34.2;
xiaoHei.height = 50;
NSLog(@"weight  = %.2f height = %.2f", [xiaoHei weight], xiaoHei.height);

xiaoHei->_number = 100;
NSLog(@"number = %li", xiaoHei->_number);

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: