小白学开发(iOS)OC_property和synthesize(2015-07-28)

来源:互联网 发布:探索者钢结构设计软件 编辑:程序博客网 时间:2024/05/17 02:33
 //
//  main.m
//  OC特有语法--property
//
//  Created by admin on 15/7/29.
//  Copyright (c) 2015年 admin. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {

    Person *p = [Person new];
    [p setAge:10];
    NSLog(@"age = %d", [p age]);

    return 0;
}
//
//  Person.h
//  OC特有语法
//
//  Created by admin on 15/7/29.
//  Copyright (c) 2015年 admin. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    int _age;   //  年龄
    int _no;    //  身份证号码
    NSString *_name;    //  姓名
}
/*
    1. @property 关键字是用来生成成员变量的set/get方法的声明(在Xcode4.4以前),
                 在后面的Xcode对这个做了增强,不但能声明set/get方法,而且能实现set/get方法
 
    2. @synthesize  关键字是用来实现成员变量的set/get方法的,但是在Xcode4.4之后
                    @property也可以实现, 这个实现的关键字放在.m文件中使用
 
    3. 使用@property的格式:      @property 成员变量类型 去掉下划线的成员变量名;
                         例如:  @property int age;
                                @property NSString * name;
 
    4. 使用@synthesize的格式:   @synthesize 去掉下划线的成员变量名 = 带下划线的成员变量名
                         例如: @synthesize age = _age;                                                          @synthesize name = _name;
 
    5. 说明:在xcode4.4以后property做了增强
            > 帮助我们自动生成get/set方法的声明
            > 帮助我们自动生产get/set方法的实现
            > 如果没有手动生成成员变量,property会在.m文件中自动帮我们生成一个“_”开头的成员变量
 
    6. 注意:如果想让子类继承父类的成员变量,还是必须要在父类的.h文件中手动写出成员变量
 */
@property int age;
/*
- (void)setAge:(int)age;
- (void)age;
 */

@end
//
//  Person.m
//  OC特有语法
//
//  Created by admin on 15/7/29.
//  Copyright (c) 2015年 admin. All rights reserved.
//

#import "Person.h"

@implementation Person
/*
- (void)setAge:(int)age
{
    _age = age;
}

- (int)age
{
    return _age;
}
 */
@end
0 0
原创粉丝点击