- 不要等到明天,明天太遙遠(yuǎn)扼睬,今天就行動逮栅。
須讀:看完該文章你能做什么?
設(shè)置類的成員變量的一些訪問修飾符
學(xué)習(xí)前:你必須會什么?
了解什么是封裝窗宇。什么是可讀措伐、可寫。
一军俊、本章筆記
一侥加、
格式
@property (屬性修飾符) 數(shù)據(jù)類型 變量名稱;
如果給一個屬性 同時提供了getter/setter方法,那么我們稱這個屬性為 可讀可寫屬性
如果 只 提供getter方法, 那么我們稱這個屬性為 只讀屬性
如果 只 提供setter方法, 那么我們稱這個屬性為 只寫屬性
如果既沒有提供getter 也沒有提供setter方法,那么 我們稱這個屬性為私有屬性
readonly : 代表只生成getter方法 不生成setter方法
readwrite : 代表即生成getter方法,也生成setter方法 (默認(rèn)情況下@property 是 readwrite)
只寫的系統(tǒng)不提供 需要程序員手動寫
二、修改getter方法名稱
系統(tǒng)默認(rèn)生成的方法名稱
- (void)setHeight:(int)height;
- (double)height;
強制修改getter方法名稱
getter=abc
- (double)abc;
三粪躬、修改setter方法名稱
系統(tǒng)默認(rèn)生成的方法名稱
- (void)setWeight:(int)weight;
- (double)weight;
強制修改setter方法名稱
setter=tiZhong:
- (void)tiZhong:(int)weight;
四担败、程序員之間有一個約定, 一般情況下獲取BOOL類型的屬性的值,我們都會將獲取的方法名稱改為isXXX
二、code
main.m
#pragma mark 05-property修飾符
#pragma mark 概念
/*
一镰官、
格式
@property (屬性修飾符) 數(shù)據(jù)類型 變量名稱;
如果給一個屬性 同時提供了getter/setter方法,那么我們稱這個屬性為 可讀可寫屬性
如果 只 提供getter方法, 那么我們稱這個屬性為 只讀屬性
如果 只 提供setter方法, 那么我們稱這個屬性為 只寫屬性
如果既沒有提供getter 也沒有提供setter方法,那么 我們稱這個屬性為私有屬性
readonly : 代表只生成getter方法 不生成setter方法
readwrite : 代表即生成getter方法,也生成setter方法 (默認(rèn)情況下@property 是 readwrite)
只寫的系統(tǒng)不提供 需要程序員手動寫
二提前、修改getter方法名稱
系統(tǒng)默認(rèn)生成的方法名稱
- (void)setHeight:(int)height;
- (double)height;
強制修改getter方法名稱
getter=abc
- (double)abc;
三、修改setter方法名稱
系統(tǒng)默認(rèn)生成的方法名稱
- (void)setWeight:(int)weight;
- (double)weight;
強制修改setter方法名稱
setter=tiZhong:
- (void)tiZhong:(int)weight;
四泳唠、程序員之間有一個約定, 一般情況下獲取BOOL類型的屬性的值,我們都會將獲取的方法名稱改為isXXX
*/
#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.age = 25;
// p.name = @"lyh"; // readonly 只讀屬性
p.height = 1.71;
p.weight = 65.0;
NSLog(@"height = %f",[p abc]);
[p tiZhong:66.0];
NSLog(@"weight = %f",[p weight]);
[p setMarried:YES];
/*
if ([p married]) {
NSLog(@"已婚");
}
else
{
NSLog(@"未婚");
}*/
if ([p isMarried]) {
NSLog(@"已婚");
}
else
{
NSLog(@"未婚");
}
return 0;
}
Person
>>>.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
/*
如果給一個屬性 同時提供了getter/setter方法,那么我們稱這個屬性為 可讀可寫屬性
如果 只 提供getter方法, 那么我們稱這個屬性為 只讀屬性
如果 只 提供setter方法, 那么我們稱這個屬性為 只寫屬性
如果既沒有提供getter 也沒有提供setter方法,那么 我們稱這個屬性為私有屬性
格式
@property (屬性修飾符) 數(shù)據(jù)類型 變量名稱;
readonly : 代表只生成getter方法 不生成setter方法
readwrite : 代表即生成getter方法,也生成setter方法 (默認(rèn)情況下@property 是 readwrite)
只寫的系統(tǒng)不提供 需要程序員手動寫
*/
@property int age;
#pragma mark 1.修改getter方法名稱
/*
系統(tǒng)默認(rèn)生成的方法名稱
- (void)setHeight:(int)height;
- (double)height;
強制修改getter方法名稱
getter=abc
- (double)abc;
*/
@property(getter=abc) double height;
#pragma mark 2.修改setter方法名稱
/*
系統(tǒng)默認(rèn)生成的方法名稱
- (void)setWeight:(int)weight;
- (double)weight;
強制修改setter方法名稱
setter=tiZhong:
- (void)tiZhong:(int)weight;
*/
@property(setter=tiZhong:) double weight;
@property(readonly) NSString *name;
#pragma mark 3.開發(fā)中 最常見修改getter方法名稱,而修改setter名稱比較少
// 是否已婚
// 程序員之間有一個約定, 一般情況下獲取BOOL類型的屬性的值,我們都會將獲取的方法名稱改為isXXX
@property(getter=isMarried) BOOL married;
@end
>>>.m
#import "Person.h"
@implementation Person
@end