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