- 不要等到明天,明天太遙遠(yuǎn),今天就行動。
須讀:看完該文章你能做什么侠姑?
property的使用
學(xué)習(xí)前:你必須會什么?(在這里我已經(jīng)默認(rèn)你具備C語言的基礎(chǔ)了)
什么是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函數(shù)
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; // 這樣格式不符合規(guī)范 并且證明 系統(tǒng)是如何生成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.一定有參數(shù),參數(shù)類型 和 需要賦值的成員變量一致, 參數(shù)名稱 就是 需要賦值的成員變量名稱去掉下滑線
*/
//- (void)setAge:(int)age;
- (void)setHeight:(double)height;
- (void)setWeight:(double)weight;
- (void)setName:(NSString *)name;
/*
getter:
作用: 用于獲取成員變量的值
1.一定是對象方法
2.一定有返回值,返回值類型 和 需要獲取的成員變量的類型 一致
3.方法名稱 就是 需要獲取的成員變量的名稱 去掉下劃線
4.一定沒有參數(shù)
*/
//- (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