Objective-C @property关键字

本文介绍Objective-C中的@property关键字,该关键字用于声明变量并自动生成getter和setter方法,从而简化代码编写过程并保持面向对象的封装性。通过示例展示了如何使用@property声明变量,并关联成员变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OC中提供了@property的关键字来声明变量,来简化开发人员手写getters和setters,同时不破坏面向对象的封装性,这样的好处是在一个有很多属性的Model类里,无需再为每一个属性写一套getters和setters,让代码更简洁。下面看代码的示例。

//
//  Goods.h
//  07_Property
//
//  Created by apple on 14-11-12.
//  Copyright (c) 2014年 cc. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Goods : NSObject {

    int price2;

}

// OC中提供了 @property关键字来声明变量
// 1. @property声明的变量可以直接生成public的getters和setters方法,无需自己实现了
// 2. @property声明的变量是private类型的
// 3. @property声明的变量名默认是“标准变量名”, 即变量前面加上_, 这里生成的就是 _price, 通过description()可以验证
// 4. @property声明的变量可以关联一个成员变量 @property int price = price2, 生成的getters和setters就是price2这个成员变量的了
// 5. @property声明的变量无需写在 {}中了
@property int price;

- (NSString *)description;

@end

//
//  Goods.m
//  07_Property
//
//  Created by apple on 14-11-12.
//  Copyright (c) 2014年 cc. All rights reserved.
//

#import "Goods.h"

@implementation Goods

- (NSString *)description {
    return [NSString stringWithFormat:@"price=%d", _price];
}

@end

//
//  main.m
//  07_Property
//
//  Created by apple on 14-11-12.
//  Copyright (c) 2014年 cc. All rights reserved.
//

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

int main(int argc, const char * argv[]) {

    @autoreleasepool {
    
        Goods* pGoods = [[Goods alloc]init];
        //使用自动生成的setPrice
        [pGoods setPrice:10];
        
        NSLog(@"%@", pGoods);
    
    }
    return 0;
}

测试输出的结果如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值