【Objective-C学习-3】@property和@synthesize

#import <Foundation/Foundation.h>

@interface Person : NSObject {
    //int _age;
}

//当编译器遇到@property时,会自动展开成getter和setter的声明
@property int age;
//- (int)age;
//- (void)setAge:(int)newAge;

- (void)test;

@end


#import "Person.h"

@implementation Person

//@synthesize age; 默认会去访问跟age同名的变量
//如果找不到同名的变量,会自动生成一个同名变量age

//@synthesize age = _age; 表示getter和setter方法会去访问_age成员变量
//如果.h文件没有声明_age,编译器会在.m文件中生成该私有成员变量
//某个版本以上的XCode可以自动生成该语句
//如果手动实现getter和setter方法,编译器不会自动生成该语句
//如果手动实现getter或setter方法,编译器会自动生成该语句,相应的方法也会被覆盖
@synthesize age = _age;
//- (int)age {
//    return _age * 10;
//}

- (void)setAge:(int)newAge {
    _age = newAge * 10;
}

- (void)test {
    NSLog(@"I am %i years old.", _age);
}

@end


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

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Person *person = [[Person alloc] init];
        person.age = 380;
        NSLog(@"I am %i years old", person.age);
        [person test];
        [person release]; //release直接释放
    }
    return 0;
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值