面向对象成员变量规则

声明成员变量,如果不是特别说明一定要声明在@interface(),否则会有一些异常


#import "Hello.h"


@interface Hello()

{

   正确的位置:

 NSString *jojo;

}

@end

错误:

 NSString *jojo;

@implementation Hello

错误:

 NSString *jojo;

@synthesize str;

- (void)defaultJojo

{

    jojo = @"jojo";

}

- (void)print

{

    NSLog(@"%@",jojo);

}

- (void)modify

{

    jojo = @"not jojo";

}


在错误的位置进行声明,会出现下次再次初始化创建对象的话,jojo变量会是上一次修改过的变量,而不是nil,这违反了面向对象的原则。而在@interface里面的话,每次初始化都是nil。


在.h文件的@interface里的话,除非是想让其他对象看到这个成员变量,否则,这个.h里的成员变量完全可以用属性替代,如果不想用属性,可以把.h里面的成员变量加到.m文件里的@interface(){}里,这样外界看不到。也可以在.m的@Interface里加一些属性,只给类内部使用。

以上都是为了遵守面向对象的规则。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值