04-面向?qū)ο笳Z法-封裝

1.面向?qū)ο蟮母拍?

在C語言中,我們解決一個(gè)問題,考慮的是解決這個(gè)問題需要那些步驟胰锌,這是面向過程侦鹏,注重的是步驟陨献,而在OC中寸士,解決一個(gè)問題谜诫,需要考慮的是會(huì)用到那些對(duì)象慕趴,這就是面向?qū)ο?

2.如何創(chuàng)建對(duì)象:

OC中痪蝇,要?jiǎng)?chuàng)建對(duì)象首先得有類,具有相同屬性的事物冕房,我們可以把它抽成一個(gè)類躏啰,有了類就可以創(chuàng)建對(duì)象了

3.如何設(shè)計(jì)一個(gè)類:

一個(gè)類需要一個(gè)類名,成員變量(屬性)耙册,方法(行為)给僵,使用OC的關(guān)鍵字@interface 聲明一個(gè)類的成員變量和方法,@implementation 來實(shí)現(xiàn)方法,已@end結(jié)束
   @interface Person : NSObject

   @property (nonatomic, assign) int age;

   - (void)eat;

   @end


   @implementation Person

   - (void)eat
   {

       NSLog(@"%d的人在吃飯"帝际,self.age);

   }

   @end
上面代碼中蔓同,就創(chuàng)建了一個(gè)Person這個(gè)類,并且有一個(gè)_age屬性蹲诀,有一個(gè)沒有返回值的eat方法斑粱,并且繼承了NSObject這個(gè)基類,:冒號(hào)代表繼承

4.創(chuàng)建對(duì)象:

上面創(chuàng)建了一個(gè)person這個(gè)類脯爪,并且繼承了基類NSObject则北,所以Person這個(gè)類就擁有了父類的所有方法,現(xiàn)在可以創(chuàng)建對(duì)象啦披粟,創(chuàng)建對(duì)象可以調(diào)用父類的new方法也可以調(diào)用父類的alloc方法開辟存儲(chǔ)空間咒锻,并調(diào)用對(duì)象的init方法初始化對(duì)象.
Person *p = [Person alloc] init];

Person *person = [Person new];

5.給成員變量賦值:

1> _age = 20;
2>  p.age = 20;
3> [p setAge:20];

同時(shí)也可以在創(chuàng)建對(duì)象的時(shí)候就讓對(duì)象的成員變量初始化的值不為0,這時(shí)我們需要重寫init方法守屉,在init方法里給成員變量賦值惑艇,但是這里的值是固定的,也可以自定義構(gòu)造方法,自己傳遞參數(shù)拇泛,同時(shí)設(shè)置多個(gè)成員變量的屬性滨巴,方法名一般已initWith開頭

- (id)init
{

    self = [super init];

    if (self != nil)
    {
        _age = 20;
    }

    return self;

}

可以簡(jiǎn)寫成下面的寫法:

- (id)init
{

    if ( self = [super init] )
    {

        _age = 20;

    }

    return self;

}

注意:一定要調(diào)用回super的init方法:初始化父類中聲明的一些成員變量和其他屬性,如果對(duì)象初始化成功,才有必要進(jìn)行接下來的初始化,返回一個(gè)已經(jīng)初始化完畢的對(duì)象

6.面向?qū)ο蟮娜筇匦?封裝俺叭,繼承恭取,多態(tài)

  • set方法
    1>封裝:set方法
    2>作用:提供一個(gè)方法給外界設(shè)置成員變量值,可以在方法里面對(duì)參數(shù)進(jìn)行相應(yīng)過濾
    3> 方法名必須以set開頭
    4> set后面跟上成員變量的名稱熄守,成員變量的首字母必須大寫
    5> 返回值一定是void
    6> 一定要接收一個(gè)參數(shù)蜈垮,而且參數(shù)類型跟成員變量類型一致
    7> 形參的名稱不能跟成員變量名一樣

例:

- (void)setAge : (int) newAge; // 方法聲明

- (void)setAge : (int) newAge // 方法實(shí)現(xiàn)
{
    if (newAge <= 0)
      {
        newAge = 1;  // 對(duì)傳入的參數(shù)進(jìn)行過濾 
      }  

    age = newAge;
}
  • get方法:
    1> 作用:返回對(duì)象內(nèi)部的成員變量
    2> 肯定有返回值,返回值類型肯定與成員變量類型一致
    3> 方法名跟成員變量名一樣
    4> 不需要接收任何參數(shù)
    
    封裝細(xì)節(jié):
    1> 成員變量的命名規(guī)范:一定要以下劃線_開頭(下劃線可看作首字母)
    作用:1.讓成員變量與get方法的名稱區(qū)分開 2.可以跟局部變量區(qū)分開裕照,一看到下劃線開頭的變量攒发,一般都是成員變量

例:

- (int) age; // 方法的聲明

- (int) age // 方法的實(shí)現(xiàn)
{
  return age;  
}
繼承:當(dāng)某個(gè)類繼承了父類就擁有了父類的所有成員變量和方法,同時(shí)也可以擴(kuò)充方法晋南,基本上所有的類都繼承NSObject惠猿,同時(shí)子類也也可以重寫父類的方法,父類必須聲明在子類的前面负间,子類不能擁有和父類相同的成員變量偶妖,調(diào)用某個(gè)方法時(shí),優(yōu)先去當(dāng)前類中找政溃,如果找不到趾访,就去父類中找
多態(tài): 簡(jiǎn)單來說就是父類的指針指向子類對(duì)象,但是父類類型的變量不能直接調(diào)用子類特有的方法董虱。必須強(qiáng)轉(zhuǎn)為子類類型變量后腹缩,才能直接調(diào)用子類特有的方法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市空扎,隨后出現(xiàn)的幾起案子藏鹊,更是在濱河造成了極大的恐慌,老刑警劉巖转锈,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盘寡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡撮慨,警方通過查閱死者的電腦和手機(jī)竿痰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來砌溺,“玉大人影涉,你說我怎么就攤上這事」娣ィ” “怎么了蟹倾?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)猖闪。 經(jīng)常有香客問我鲜棠,道長(zhǎng),這世上最難降的妖魔是什么培慌? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任豁陆,我火速辦了婚禮,結(jié)果婚禮上吵护,老公的妹妹穿的比我還像新娘盒音。我一直安慰自己,他們只是感情好馅而,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布祥诽。 她就那樣靜靜地躺著,像睡著了一般用爪。 火紅的嫁衣襯著肌膚如雪原押。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天偎血,我揣著相機(jī)與錄音诸衔,去河邊找鬼。 笑死颇玷,一個(gè)胖子當(dāng)著我的面吹牛笨农,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播帖渠,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼谒亦,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起份招,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤切揭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后锁摔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體廓旬,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年谐腰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了孕豹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡十气,死狀恐怖励背,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情砸西,我是刑警寧澤叶眉,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站籍胯,受9級(jí)特大地震影響竟闪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜杖狼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一炼蛤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝶涩,春花似錦理朋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至熄攘,卻和暖如春兽愤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挪圾。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國打工浅萧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人哲思。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓洼畅,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親棚赔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子帝簇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359