OC4_实例变量的作用域

时间:2024-10-24 19:05:08
//
// 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 = ;
NSLog(@"name =%@ age = %li", xiaoHei.name, xiaoHei.age); xiaoHei.weight = 34.2;
xiaoHei.height = ;
NSLog(@"weight = %.2f height = %.2f", [xiaoHei weight], xiaoHei.height); xiaoHei->_number = ;
NSLog(@"number = %li", xiaoHei->_number); }
return ;
}