四:setter和getter方法


setter和getter方法整體聲明和實現雖然后面可以用@property代替,但是在后面的iOS開發中,setter方法或getter方法單獨使用的頻率比較高,應用比較廣泛!

@Interface Person:NSObject
{
  NSString *_name;
  int _age;
  Sex _sex;      //此處枚舉類型,屬於基本數據類型,不用加“*”
  float _height;
}
@end

一、setter方法就是給屬性賦值的方法

書寫格式:

1、在類的聲明中:- (void) +(set+屬性去掉"_",首字母大寫) : (數據類型/對象/類) + (屬性去掉"_");

注意事項:

(1) setter方法一定是對象方法

(2) 一定沒有返回值

(3) 一定以set開頭, 並且set后面跟上需要設置的成員變量的名稱去掉下划線, 並且首字母大寫

(4) 一定有參數, 參數類型一定和需要設置的成員變量的類型一致, 並且參數名稱就是成員變量的名稱去掉下划線

舉例:

- (void) setName: (NSString *)name;
- (void)setAge: (int)age;
- (void)setSex:(Sex)sex;
- (void)setHeight: (float)height; 

2、在類的實現中:大括號內可以添加其它內容,但是必須實現 屬性 =(去掉"_"的屬性)

- (void) setName: (NSString *)name{
  _name = name;
}

- (void)setSex:(Sex)sex{
  _sex = sex;
}

 

二、getter方法就是獲取成員變量值得方法

書寫格式:

1、類的聲明中 :- (數據類型/對象/類)+(屬性去掉“_”)

注意事項:

(1) getter方法一定是對象方法

(2)一定有返回值, 而且返回值一定和獲取的成員變量的類型一致

(3)方法名稱就是獲取的成員變量的名稱去掉下划線

(4) 一定沒有參數

舉例:

- (NSString *)name;

- (int)age;

- (Sex)sex;

- (float)height;

2、類的實現中:在類的實現中可以添加其它內容,但是必須有 return + 屬性

- (NSString *)name{
  return _name;
}

- (Sex)sex{
  return _sex;
}

 

三、其它應用:

1、一個屬性可以只有getter方法, 沒有setter方法, 這種屬性我們稱之為只讀屬性

2、一個屬性也可以只有setter方法, 沒有getter方法, 這種屬性我們稱之為只寫屬性

3、如果既有setter方法又有getter方法, 那么這種屬性我們稱之為可讀可寫的屬性

4、一個屬性也可以沒有getter和setter, 這種屬性我們稱之為私有屬性

5、setter方法和getter方法的聲明和實現可以直接用下面代替(寫在類的聲明里面)

@property(nonatomic,assin)NSString * name;

@property(nonatomic,assin)Sex sex;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM