OC语言day04-02property基本使用

pragma mark property基本使用

pragma mark 概念

/**
 property:性质,性能;财产;所有权
 */

pragma mark 代码

#import <Foundation/Foundation.h>
#pragma mark 类
#import "Person.h"
#pragma mark main函数
int main(int argc, const char * argv[])
{
    Person *p  = [Person new];

    [p setAge:7];
    [p age];
    
    return 0;
}



Person.h //人类
#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    int _age;
    double _height;
    double _weight;
    NSString *_name;
}
#pragma mark property使用
/**
 property 是一个编译器指令
 在Xcode4.4之前, 可以使用@property 来代替 getter/setter方法的声明
 也就是说我们只需要写上@property 就不写
 
 编译器 只要看到@property, 就知道我们要生产某一个属性的setter/getter方法的说明
 
 - (void)setAge:(int)age;
 - (int)age;
 */

@property int age;
/**
 @property 的本质 ()
 - (void)setHeight:(double)height;
- (int) age;
 */


#pragma mark getter 和 setter
/**
 setter:
 作用: 用于 给 成员变量 赋值
 1. 一定是对象方法
 2. 一定没有返回值
 3. 方法名称以set开头, 后面 跟上 需要赋值的成员变量名称,并且去掉 下划线, 然后首字母 大写
 4. 一定有参数, 参数类型 和需要赋值的成员变量 一致, 参数名称就是需要 赋值的 成员变量 去掉 下划线
 */
//- (void)setAge:(int)age;
- (void)setHeight:(double)height;
- (void)setWeight:(double)weight;
- (void)setName:(NSString *)name;


/**
 getter:
 作用: 用于获取成员变量的值
 1. 一定是对象方法
 2. 一定有返回值, 返回值类型 和 需要获取 成员变量的类型 一致
 3. 方法名称 就是 需要获取的成员变量的名称 去掉下划线
 4. 一定没有参数
 */
//- (int)age;
- (double)height;
- (double)weight;
- (NSString *)name;
@end
IPhone.m
#import "Person.h"

@implementation Person
#pragma mark setter
- (void)setAge:(int)age
{
    _age = age;
}
- (void)setHeight:(double)height
{
    _height = height;
}
- (void)setWeight:(double)weight
{
    _weight = weight;
}
- (void)setName:(NSString *)name
{
    _name = name;
}

#pragma mark getter

- (int)age
{
    return _age;
}

- (double)height
{
    return _height;
}

- (double)weight
{
    return _weight;
    
}

- (NSString *)name
{
    return _name;
}
@end

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容