黑馬程序員——OC的簡單認識


一. 理解面向對象

•面向對象是相對面向過程而言

•面向過程
–強調的是功能行爲
–關注的是解決問題需要哪些步驟

•面向對象
–將功能封裝進對象,強調具備了功能的對象
–關注的是解決問題需要哪些對象
面向對象是基於面向過程的


二.  面向對象的特點:

•是一種符合人們思考習慣的思想
•可以將複雜的事情簡單化
•將程序員從執行者轉換成了指揮者

•完成需求時:
–先要去找具有所需的功能的對象來用。
–如果該對象不存在,那麼創建一個具有所需功能的對象。

•擁有相同(或者類似)屬性和行爲的對象都可以抽像出一個類


 1. #import <Foundation/Foundation.h>

  #import是include的升級版,可以自動防止重複引用,以後都使用import

 2. printf與NSLog的區別

     1.名字不同

     2.引入的頭文件不同。前者引入 #include < stdio . h>      後者引入 #import <Foundation/Foundation.h>

     3.寫的格式不同。在使用NSLog打印時,要在“”前面加一個@

     4.輸出的內容不同

     5.NSLog可以自動換行

     6.printf用於c的字符串  NSLog一般用於oc的字符串

 3.什麼是面向對象:

      更加複合人們的思考習慣,將複雜的事情簡單化處理,使人們從執行者變成了指揮者

 4.什麼是對象?

      世界萬物皆對象

 5.什麼是類?

      相當於現實當中的圖紙,是具體事物的抽象,是描述的屬性和行爲。

 6.創建一個具體的類

      三要素:》類名:首字母大寫,其他單詞遵循駝峯原則

            》屬性:一般以下劃線開頭,其他單詞遵循駝峯原則

            》行爲:遵循駝峯原則


三.  類的聲明和實現

類的聲明:對類的屬性和行爲進行聲明

  NSObject//使類具有創建對象的能力


類的實現:類的聲明中聲明瞭什麼方法,實現當中就寫什麼方法的實現

#import"MyClass.h"

@implementation   MyClass

-(id)initWithString:(NSString *)aName

{

    //寫代碼處

}

+(MyClass *)myClassWithString:(NSString *)aName

{

    //寫代碼處

}

@end


聲明對象方法

•  聲明沒有返回值的方法
•-(void) method;

•  聲明有返回值的方法
•-(int) method;

•  聲明有返回值有參數的方法
•-(int) method: (int)var;

•  聲明有返回值有多個參數的方法
•-(int)method: (int) var1 andVar2: (int)var2;
<注>:每一個參數對應一個:號,:號是方法名的一部分,-號不是方法名的一部分

聲明類方法

•  聲明沒有返回值的方法
•+(void)method;

•  聲明有返回值的方法
•+(int)method;

•  聲明有返回值有參數的方法
•+(int)method: (int)var;

•  聲明有返回值有多個參數的方法
•+(int)method: (int) var1 andVar2: (int)var2;



實例化對象(創建對象)


    [car new] 做了三件事情:

     1.開闢存儲空間

     2.初始化成員變量(又稱實例變量,成員變量就是類的聲明的大括號中的屬性),整數值會被初始化爲0

     3.返回空間的地址



消息機制
•使用對象調用方法就是OC中的消息機制


四.  補充

  Car *car1;  //局部變量,在棧區

  car1 = [Car new]; // 在堆裏面創建了一個對象


  每new一次,就重新開闢一塊兒存儲空間,所以對象之間互補影響
  一個類可以創建多個對象,對象之間互不影響

  oc當中所有的類都可以代表一種數據類型      // NSObject *



  每new一次,就重新開闢一塊兒存儲空間,所以對象之間互補影響

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章