• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            f(sixleaves) = sixleaves

            重劍無鋒 大巧不工

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              95 隨筆 :: 0 文章 :: 7 評論 :: 0 Trackbacks
             1 #import <Foundation/Foundation.h>
             2 
             3 @interface Car : NSObject
             4 {
             5 
             6 }
             7 
             8 @property int speed;
             9 @property int wheels;
            10 
            11 @end
            12 
            13 @implementation Car
            14 
            15 // 第一步簡化:不用寫成員變量。(使用synthesize自動生成)
            16 // @synthesize會訪問_speed成員變量,如果不存在,則自動生成_speed的成員變量。
            17 @synthesize speed;  // 說明了synthesize默認訪問的speed,所以會生成speed成員變量。
            18 @synthesize wheels = _wheels; // 已經指定了setter、getter訪問的成員變量,所以如果沒有,會自動生成。
            19 
            20 @end
            21 
            22 
            23 int main() {
            24     
            25     Car *c = [Car new];
            26     c.speed = 10;
            27     
            28     return 0;
            29 }
            30 
            31 // 最簡化寫法:
            32 /*
            33  總體總結
            34  ======================================================================================
            35  @property的基本作用:
            36     自動生成getter、setter的聲明。
            37  
            38  @synthesize的基本作用:
            39     自動生成getter、setter的實現。
            40  
            41 
            42  @synthsize的2個使用細節:
            43  
            44     @synthesize age的使用細節:
            45     1.自動訪問age成員變量
            46     2.如果age不存在,則自動生成@private的成員變量age;
            47 
            48     @synthesize age = _age;
            49     1.會自動訪問_age成員變量
            50     2.如果_age成員變量不存在,會自動生成私有的_age成員變量。
            51  ===================================================================
            52  @property新特性的作用(主要做了三件事):
            53  1.生成帶下劃線的私有成員變量。
            54  2.按照屬性名生成相應的setter與getter
            55  3.自動生成setter與getter實現(或者說是自動生成簡化的第一步)。
            56  
            57  @property新特性注意事項:
            58  大原則:有的就不生成、沒有的才自動生成。
            59  
            60  1.你有定義的setter、getter則不自動生成,沒有的話,才會自動生成。
            61  
            62  2.如果setter和getter都自定義了,那么則不會再自動生成setter、getter。包括帶下劃線的成員變量,所以這句話,相當于是廢的。
            63  分析:因為自動生成setter、getter就是為了給成員變量使用,如果不自動生成,那么也就沒必要自動生成私有的成員變量。
            64  
            65  3.如果想要不是私有的成員變量,那么可以自己定義。 再使用@property,此時如果存在這個成員變量,
            66  它就不會再自動生成,其作用域也就不是固定的私有,而是自己定的。
            67  */
            posted on 2015-05-01 23:14 swp 閱讀(153) 評論(0)  編輯 收藏 引用 所屬分類: objective-c
            久久久久亚洲精品无码网址| 久久精品国产日本波多野结衣| 国产产无码乱码精品久久鸭| 国产午夜久久影院| 青青热久久国产久精品 | 久久精品国产亚洲AV不卡| 亚洲欧美国产日韩综合久久| 欧洲成人午夜精品无码区久久| 26uuu久久五月天| 久久精品天天中文字幕人妻| 狠狠久久综合| 久久精品国产清高在天天线| 亚洲国产天堂久久综合| 久久91亚洲人成电影网站| 久久影院亚洲一区| 久久综合丁香激情久久| 麻豆成人久久精品二区三区免费| 久久精品国产亚洲一区二区三区 | 欧美熟妇另类久久久久久不卡| 国产精品成人99久久久久| 99国产欧美久久久精品蜜芽| 人人妻久久人人澡人人爽人人精品| 久久久国产精品福利免费| 国产亚洲精品自在久久| 一本色道久久综合亚洲精品| 一级做a爰片久久毛片免费陪| 亚洲?V乱码久久精品蜜桃| 草草久久久无码国产专区| 99精品国产99久久久久久97| 亚洲色欲久久久久综合网| 精品欧美一区二区三区久久久| 精品久久一区二区| 久久国产成人精品麻豆| 久久精品一区二区三区不卡| 国产午夜精品理论片久久影视 | 中文字幕热久久久久久久| 久久精品国产男包| 中文无码久久精品| 欧洲成人午夜精品无码区久久| 国内精品久久久久影院一蜜桃| 久久无码人妻一区二区三区午夜|