国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

OC-2.OC基礎知識介紹

2019-11-14 18:03:06
字體:
來源:轉載
供稿:網友

一、基礎語法

1> OC語言和C語言

  • C語言是面向過程的語言,OC語言是面向對象的語言
  • OC語言繼承了C語言,并增加了面向對象的思想
  • 以下內容只介紹OC語言與C語言的不同之處

2> 關鍵字

  • 以字母或下劃線開頭

3> 字符串

  • OC語言有自己特有的字符串,,區別于C語言字符串

4> BOOl類型

  • 只有YES和NO兩種取值
  • 本質上是char類型,但理解為整型
  • BOOL類型是由 條件編譯機制引進的

5> #import與#include

  • 都是將文件內容拷貝到指令出現的代碼行
  • 系統文件用尖括號,用戶自定義的文件用圓括號
  • #import包含的文件中有條件編譯指令,可以防止文件被多次拷貝

6> NSLog與PRintf

  1. NSLog

    ① NSLog函數包含在Foundation框架中② NSLog函數接收的是OC語言字符串③ NSLog函數默認在結束處輸出換行④ NSLog函數不能以%s格式輸出包含中文的字符串

     

     
  2. printf

    ① printf函數包含在stdio.h文件中② printf函數接收的是C語言字符串③ printf函數需要使用換行符'/n'

     

  3. NSLog的其他用途

    ① 通過_LINE_參數輸出改代碼所在的行號② 通過_FILE_參數輸出改代碼所在的文件的文件名③ 通過_func_參數輸出代碼所在的函數的函數名

     

二、類、對象和方法

1> 類

  1. 類與結構體

    ① 結構體是數據的封裝② 類是數據及與數據相關操作的封裝

     

  2. 類的聲明

    ① 用@interface和@end組合來聲明一個類,通常繼承與根類NSObject② 指定類名:首字母大寫,使用駝峰標示,不包含數字③ 聲明屬性列表:以下劃線開頭,可以與get方法的名稱區分開④ 聲明方法列表:包括類方法和對象方法

     

  3. 類的實現

    ① 用@implementation和@end組合來實現類② 實現類聲明中的方法列表③ 類的實現也可以定義實例變量,通常不這樣定義④ 未實現聲明的類會發出警告

     

  4. 類的本質

    ① 類本質上也是一個對象,是class類定義的對象,稱為類對象② 使用class方法可以獲取類對象③ 每個類中都會有一個superclass指針指向其父類

     

  5. 類的加載和初始化

    ① 加載    1)類在使用之前會被加載至內存,加載完畢調用+(void)load方法    2)所有的類只會被加載一次    3)方法會在類加載的同時被加載    4)某個類定義的所有對象的isa指針都指向內存中該類的唯一副本    5)首先加載父類,其次是子類,最后是分類② 初始化    1)類在使用時才會調用initialize方法初始化    2)沒有使用的類不會調用initialize方法    3)首先調用父類的初始化方法,其次是子類

     

     

  6. 類的使用注意

    ① 類的聲明和實現必須成對出現② 類不能嵌套聲明和實現③ 成員變量不能在定義的時候初始化,也不能直接使用④ 成員變量不能用static等關鍵字修飾⑤ 訪問沒有的成員變量會報錯⑥ 成員變量必須寫在大括號內,方法列表不能寫在大括號內⑦ 類的聲明必須出現在使用之前

     

  7. @public、@protected、@

    ① @public修飾的成員變量在任何地方都可以直接訪問② @protected修飾的成員變量可以在當前類以及子類的對象方法中直接訪問,默認為該類型③ @private修飾的成員變量只能在當前類的對象方法中直接訪問,在實現中聲明的成員變量默認為該類型④ @package修飾的成員變量在同一個“體系內”(框架)可以訪問,  介于@private和@public之間

     

2> 對象

  1. 對象與類

    ① 類是具有相同或相似屬性和操作的對象的抽象;對象是類的一個實例,是類通過調用一定的方法創建的② 類本身會占用內存空間,包含所有的方法列表③ 類的成員變量不會占用內存空間,只有在定義對象時才會分配存儲空間

     

  2. 對象的本質

    ① 本質上,我們研究的一切事物皆是的對象,包括具體事物和抽象事物② 每個對象總會攜帶它的isa成員,指向該對象的類③ 系統總會攜帶對象的相關信息

     

  3. 對象的創建和初始化

    ① 初始化方法通常用init開頭② 類方法alloc和init完成對象的創建和初始化③ 類方法new可以代替alloc和init完成對象的創建并初始化④ 在對象的初始化時會加載一次類,返回一個該類型的指針

     

  4. 匿名對象

    ① 每次創建的匿名對象都是不同的對象② 匿名對象會造成內存泄露,盡量不要創建類似匿名對象的對象

     

3> 方法

  1. 方法的定義

    ① 返回值類型:指定函數返回值的類型② 參數列表:多個參數用冒號及冒號前的描述隔開③ 方法名:在有參數列表的方法中,方法名包括冒號及冒號前的描述

     

  2. 類方法

    ① 以加號(+)開頭② 只能通過類名調用,可以在中括號內調用③ 不能訪問實例變量④ 當不需要訪問成員變量的時候通常使用類方法⑤ 工具類的方法通常為類方法

     

  3. 對象方法

    ① 以減號(-)開頭② 只能通過對象調用,可以在中括號內調用③ 對象方法能訪問實例變量

     

  4. 方法的使用注意

    ① 方法不能獨立與類而存在② 方法有聲明就必須有實現,否則會報錯③ 方法只有實現,沒有實現,仍然能夠調用,但是會發出警告④ 訪問沒有的方法會警告⑤ 類方法可以和對象方法同名⑥ 方法不能用static等關鍵字修飾⑦ 帶參數的方法,一個參數對應一個冒號,通常在每個冒號前寫描述

      

  5. 方法與函數的區別

    ① 函數的定義可以出現在文件的任意位置,方法只能出現在@implementation和@end之間② 函數歸文件所有,方法歸類/對象所有③ 方法通過類/對象調用,函數不依賴于類/對象④ 方法可以訪問成員變量,函數不可以

     

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 马尔康县| 呼伦贝尔市| 吉木萨尔县| 商丘市| 沂南县| 新巴尔虎右旗| 潍坊市| 奎屯市| 周宁县| 临澧县| 和平区| 武义县| 睢宁县| 宁陕县| 霍山县| 南涧| 天柱县| 响水县| 兰西县| 洛阳市| 白朗县| 赣榆县| 敦煌市| 长泰县| 齐河县| 金川县| 朝阳区| 清原| 图木舒克市| 高唐县| 靖州| 偃师市| 昌黎县| 黑水县| 和林格尔县| 财经| 西昌市| 南华县| 衡东县| 马山县| 田林县|