08-getter-setter方法、點語法

  • 背景:
    • 由于開發中經常需要定義一些方法來操作成員變量,而每個方法都必須有一個有意義的名稱,而想名字非常難,所以就有了getter-setter方法
    • getter-setter方法格式和寫法都是固定的,所以只要有getter-setter方法就不用煞費心思的去想方法名稱了,解決了起名字難問題
    • 并且getter-setter方法還是程序員之間的一種規范,以后別人只要想給屬性賦值立刻就會想到getter-setter方法,這樣降低了程序員之間的溝通成本

setter方法


  • 作用: 設置成員變量的值
  • 格式:
    • 1.setter方法一定是對象方法
    • 2.一定沒有返回值
    • 3.一定以set開頭, 并且set后面跟上需要設置的成員變量的名稱去掉下劃線, 并且首字母大寫
    • 4.一定有參數, 參數類型一定和需要設置的成員變量的類型一致, 并且參數名稱就是成員變量的名稱去掉下劃線

getter方法:


  • 作用: 獲取成員變量的值
  • 格式:
      1. getter方法一定是對象方法
    • 2.一定有返回值, 而且返回值一定和獲取的成員變量的類型一致
    • 3.方法名稱就是獲取的成員變量的名稱去掉下劃線
    • 4.一定沒有參數

Person.h文件中代碼示例

#import <Foundation/Foundation.h>
@interface Person : NSObject
{
    int _age; //年齡
}
// setter方法
- (void)setAge:(int)age;
// getter方法
- (int)age;

Person.m文件中代碼示例

#import "Person.h"
@implementation Gun
- (void)setAge:(int)Age;
{
     //成員變量以下劃線開頭的好處,就是可以區分局部變量和成員變量
    _size = size;
}
- (int)size
{
    return _size;
}

點語法


  • 背景: 如果給屬性提供了getter和setter方法, 那么訪問屬性就又多了一種訪問方式 , 點語法
  • 本質: 點語法其實它的本質是調用了我們的setter和getter方法
  • 編譯器的特性: 點語法是一個編譯器的特性, 會在程序翻譯成二進制的時候將.語法自動轉換為setter和getter方法
  • 如果點語法在=號的左邊, 那么編譯器會自動轉換為setter方法
  • 如果點語法在=號的右邊, 或者沒有等號, 那么編譯器就會自動轉換為getter方法
  • 如果某一個屬性只提供了getter方法, 沒有提供setter方法, 我們稱這個屬性為只讀屬性
    其他:只有setter——只寫屬性; setter、getter都有——可讀可寫; 都沒有——私有。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. 使用 #import 相對c的 include 是防止頭文件的重復導入 2. NSLog 相對于 print...
    迎風起飛的豬閱讀 1,789評論 6 9
  • /女孩子,一定要對得起自己/ no.1 我們總是能聽到很自私的說法:無論對不起誰,都要對自己好一...
    允奕閱讀 621評論 0 1
  • 捱過了三個季節 二百四十余個日夜的期待 不一樣的你 終托朔風告訴我 今夜 你許會來 那盈盈的笑意又起 那匆匆的碎步...
    本無痕閱讀 773評論 61 95
  • 生活有條不紊地進行著。 張小雨在工作上不停地學習,向周圍人取經,做事時比別人多了一份責任心,也多了一個心眼。她努力...
    如此且行閱讀 286評論 1 1
  • 在網上看了很多大神前輩的建議和問答,應用在了自己寫體驗報告的過程中,也總結改進了一些,現在來寫寫自己的感受~ 基本...
    樂塌塌閱讀 634評論 0 5