第04天OC语言(02):property基本使用
2017-07-21 本文已影响18人
liyuhong
- 不要等到明天,明天太遥远,今天就行动。
须读:看完该文章你能做什么?
property的使用
学习前:你必须会什么?(在这里我已经默认你具备C语言的基础了)
什么是setter、getter方法
一、本章笔记
@property 是一个编译器指令
在Xcode4.4之前, 可以使用@property 来代替 getter / setter方法的声明
也就是说我们 只需要写上@property 就不用写getter / setter方法的声明
编译器只要看到 @property, 就知道我们要生成某一个属性的 getter/setter方法的声明
@property int age;
等同于👇
1.定义变量
{
int _age;
}
2.声明setter 和 getter方法
- (void)setAge:(int)age;
- (int)age;
二、code
main.m
######main.m
#pragma mark 02-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:22];
[p age];
[p set_age:22];
[p _age];
return 0;
}
Person
>>>.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
// int _age;
double _height;
double _weight;
NSString *_name;
}
@property int age;
@property int _age; // 这样格式不符合规范 并且证明 系统是如何生成setter和getter方法的
/*
- (void)set_age:(int)age;
- (int)_age
*/
#pragma mark @property
/*
@property 是一个编译器指令
在Xcode4.4之前, 可以使用@property 来代替 getter / setter方法的声明
也就是说我们 只需要写上@property 就不用写getter / setter方法的声明
编译器只要看到 @property, 就知道我们要生成某一个属性的 getter/setter方法的声明
@property int age;
等同于👇
1.定义变量
{
int _age;
}
2.声明setter 和 getter方法
- (void)setAge:(int)age;
- (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
>>>.m
#import "Person.h"
@implementation Person
//- (void)setAge:(int)age
//{
// _age = age;
//}
- (void)setHeight:(double)height
{
_height = height;
}
- (void)setWeight:(double)weight
{
_weight = weight;
}
- (void)setName:(NSString *)name
{
_name = name;
}
//- (int)age
//{
// return _age;
//}
- (double)height
{
return _height;
}
- (double)weight
{
return _weight;
}
- (NSString *)name
{
return _name;
}
@end