IOS--set與get方法的理解

 目的:爲了能讓類的成員變量正確的被外接訪問,咱們須要設置set和get方法。java

      用property就會自動生成get,set方法的過程當中處理好retain,copy,release的關係,並且還能夠在main中調用時使用          java習慣的點賦值,點調用,何樂而不爲呢。
函數


    分析
spa

    1. set 函數.net

   set 函數,對成員變量賦值。 Set函數的通常寫法:對象

  -(void)setAge:(int)newage;blog


  2.Get函數get

  getter函數,對成員變量取值。Get函數通常寫法class

-(int)age;變量



  3. 點運算符在oc的類對象中不能訪問成員變量,如dog.age=5,這裏不是使用成員變量age,而是調用成員方法setAge,至關於給dog.age賦值,調用方法[dog setAge:5]; 方法


     NSLog(@" %d ", dog.age); 這裏也不是使用成員變量age,而是調用成員方法age, 使用dog.age表達式的值時,實際上就是調用成員方法age,  [dog  age].


    " . " 不能調用成員變量,只是調用set函數和get函數的一種簡寫。 這裏不能理解爲定義了get函數和get函數就能調用成員變量,由於將這兩個函數,不以通常相識書寫時,使用dog.age時,就會報錯

   

4.     @property 和@synthesize

定義set函數和get函數時,咱們會發現多個成員變量定義時,會作許多重複的工做,OC爲了方便,將這種方法封裝起來,咱們可使用@property來聲明set和get函數,使用@synthesize來實現set函數和get函數。一樣以Dog類的成員變量age爲例。

-(void)setAge:(int)newage;

-(int)age;

這兩個函數使用@property,能夠寫爲 「@property int age;」,這樣大大減小了重複性工做。

聲明後實現函數,通常的實現方式爲


   5:

  函數前的「+」與「-」

 OC中常見函數名稱前面常帶有「+」和「-」,這裏的加減號分別表明了不一樣的方法類型。

  +      表明 函數爲類的函數,調用時用類名調用。

  -       表明 函數爲對象的函數,調用時需用對象調用。

類沒有空間,沒有成員變量的空間,類的方法不能使用對象的成員變量。

  用處: 1 在沒有對象的時候,調用+函數建立一個對象。

              2 單例模式。能夠看爲全局變量的升級版。一個類的對象爲其餘類的全部對象所共有。

相關文章
相關標籤/搜索