//
// 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;
}
转载于:https://www.cnblogs.com/0515offer/p/4581207.html