溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

第一講、類和對象-------(2)

發(fā)布時間:2020-06-16 01:54:07 來源:網絡 閱讀:373 作者:遙星夢 欄目:開發(fā)技術

一、課程回顧

1、面向對象的語言

      面向對象編程:以事物為中心

      面向過程編程:以事件為中心

2、類和對象

      描述類:具有相同特征和行為的事物的抽象

      對象是類的實例,類是對象的抽象

3、定義類

      接口部分:聲明類的特征(實例變量)和行為(方法)

      實現部分:實現方法

4、創(chuàng)建對象

      Person * p1 = [[Person alloc] init];

      alloc 類方法 只有類可以調用

      作用:在堆區(qū)為對象分配存儲空間;將存儲空間清空,所有實例變量設置為0;返回對象存儲空間的首地址。

       init 實例方法  只有對象可以調用

       作用:為實例變量設置

       p1本質:指向Person類型對象的指針

       當某個對象類型的指針指向創(chuàng)建的對象時,將p代指為對象

5、對象調用方法

     [p sayHi];

     Person * p2 = nil;

     p2不能代指為對象,是空指針

     在OC中,對nil做任何操作都是無效的


二、實例變量操作

       在類的外部(定義類以外的部分)調用public修飾的實例變量時,使用->

1、實例變量賦值

       p->_name = @"遙星夢";

       p->_age = 18;

2、讀取實例變量的值

      NSLog(@name = %@, age = %d",  p->_name, p->_age);

      輸出:name = 遙星夢, age = 18

3、重寫init初始化

      1)聲明部分-----Person.h

      - (Person *)init;

      - (id)init;  - (instancetype)init;----通用寫法

      id通用指針類型,只能指向對象類型

      寫法:id   Teacher *  Person *    不能表示int *

       2)實現部分------Person.m

        - (id)init

        {
             _age = 18;

             return self;

             // self表示自己   初始化方法必須返回self

         }

4、實例方法

     1)聲明部分------Person.h

      - (void)introduce;

     2)實現部分------Person.m

     - (void)introduce

    {

           NSLog(@"我叫%@", _name);

           //  所有創(chuàng)建的Person對象,都可以調用屬于這個對象的實例方法

           //  實例方法中,可以直接使用實例對象

           //  哪個對象調用了實例方法,那么實例變量中的值是當前這個對象的值

     }

    3)調用-------main.m

     [p introduce];

     輸出:我叫遙星夢

 

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI