OC語言 OC語言基礎 類

2021-06-27 19:16:28 字數 4154 閱讀 7437

1>oc檔案的擴充套件名為.m、

.c;2>oc語言完全相容

c語言,即

oc語言中可以寫

c語言;

3>oc語言也可以寫

c++語言,但是如果要寫

c++語言,則

oc擴充套件名為

.mm;

4>oc語言是在

c語言的基礎上增加了最小層的物件導向語言;

型別oc語言

c語言關鍵字

基本上所有的都以@

開頭:@public

沒有@:int

字串@開頭:

@」hello, world!」;

沒有@:」hello, world!」;

基本資料型別

int,double,char,float

int,double,char,float,bool

輸出語句

nslog(@」hello,world!」);自動換行

printf(「hello, world!\n」);需加

\n換行;

開發過程

原始檔(.m)->

編譯後生成

.o檔案

->

鏈結後生成

a.out

可執行檔案

原始檔(.c)->

編譯後生成

.o檔案

->

鏈結後生成

a.out

可執行檔案

包含標頭檔案

<#import foundation/foundation.h>

<#include stdio.h>

1.#import 與

#include

1> 跟

#include

一樣,拷貝檔案的內容;

2> 可以自動防止檔案的內容被重複拷貝

2.foundation/foundation.h

1>foundation表示是

foundation

框架,foundation.h

成為foundation

框架中的主標頭檔案,此檔案中包含了框架中所有其他標頭檔案;

2> 主標頭檔案:最主要的標頭檔案,名字一般跟框架名稱一樣,包含了框架中的所有其他標頭檔案

1> 編寫

oc原始檔:.m、

.c 2> 編譯:

cc -c ***.m ***.c

cc ***.o ***.o -framework foundation

(只有用到了

foundation

框架才需要加上

-framework foundation)

4> 執行:

./a.out

1>bool型別其實是

char

型別,如下:

typedef  signed  char  bool

2>bool型別中的

yes和

no是巨集定義,將1、

0強制轉換成

bool

型別:#define  yes  (bool)1

#define  no  (bool)0

oc語言物件導向語言,

c語言是面向過程語言,物件導向語言中包含兩個重要的概念:類和物件。

oc利用類來建立物件,物件是類的具體存在。

類由類名、屬性和行為構成。

1> 類名:類名的第乙個字母必須是大寫、不能有下劃線、多個英文單詞,用駝峰標識,例如:

person;

2>屬性:屬性的命名一般以

_開頭,例如:

int _age;

3>行為:一般小寫,如果多個英文單詞,採用駝峰標識;

舉例:* 類名:

car

* 屬性:

wheel

、speed

* 行為:

run

類在記憶體中只有乙份儲存空間,在第一次呼叫類的時候,記憶體分配儲存空間給類,類中只存放方法列表

1>類的宣告中包含類的屬性和行為;

2>類的屬性也稱為類的成員變數(例項變數),寫在大括號中;

3>類的行為也稱為類的方法,寫在大括號外邊,格式:

- (返回值型別)方法名

:(引數型別

)引數名

1:(引數型別

)引數名

2,例如

- (void)test; -(int)pow2:(int)num;

4>類的宣告格式:

@inte***ce 類名 

: nsobject   //nsobject目的是:讓

car這個類具備建立物件的能力

- (void)run;

- (int)jiasu:(int)num;

@end

類的宣告注意事項:

1> 只要是

oc物件的方法,必須以減號 

- 開頭

2> oc方法中任何資料型別都必須用小括號

()擴住

3> oc方法中的小括號

():括住資料型別

4> @inte***ce和

@end

成對出現

類的實現格式:

@implementation 類的名稱

- (void)類的方法名稱

@end

例如:

@implementation car

- (void)run

@end

1>在

oc中,想執行一些行為,就寫上乙個中括號

[行為執行者 行為名稱]

2>建立出乙個新物件後會返回新物件本身(新物件的位址)

3>利用類來建立物件

檔案

#import @inte***ce car : nsobject //讓car這個類具備建立物件的能力

- (void)run;

- (int) jiasu:(int)num;

@end

@implementation car

- (void)run

- (int)jiasu:(int)num

@end

int main()

類的設計常見錯誤:

1>@inte***ce和

@end

中間不能巢狀

@implementation

和@end

2>方法的宣告中不能寫實現;

3>方法的宣告在

{}大括號外面;

4>成員變數在宣告時不能初始化,只有物件才有此屬性,所以只有物件才能賦值;

5>不能寫

- static (void)run;

oc方法常見錯誤

1>方法只有宣告,沒有實現(經典錯誤)

2>方法沒有宣告,只有實現(編譯器警告,但是能呼叫,

oc的弱語法)

3>編譯的時候:訪問沒有的成員變數直接報錯,訪問沒有的方法,只是警告

方法

1.物件方法都是以減號 - 

2.物件方法的宣告必須寫在

@inte***ce

和@end之間

物件方法的實現必須寫在@implementation

和@end之間

3.物件方法只能由物件來呼叫

4.物件方法歸類

\物件所有

函式

1.函式能寫在檔案中的任意位置

(@inte***ce

和@end

之間除外

),函式歸檔案所有

2.函式呼叫不依賴於物件

3.函式內部不能直接通過成員變數名訪問某個物件的成員變數

OC語言 OC語言基礎 類

一 oc語言基礎 1 oc檔案的擴充套件名為.m c 2 oc語言完全相容c語言,即oc語言中可以寫c語言 3 oc語言也可以寫c 語言,但是如果要寫c 語言,則oc擴充套件名為.mm 4 oc語言是在c語言的基礎上增加了最小層的物件導向語言 二 oc語言與c語言 三 1.import 與 incl...

oc基礎語言

基 礎 語 法 objective c是c語言的母集合,就是物件導向的。1 物件導向和面向過程 物件導向和面向過程是程式設計的兩種思考方式。物件導向,簡稱oop,是完成一項工作需要那些步驟。面向過程,簡稱opp,是完成工作的每一步是怎麼完成的,注重過程。2 類和物件 1 類是一組具有相同 特徵 屬性...

OC語言基礎 01

1 import跟 include一樣,拷貝檔案的內容 2 import可以自動防止檔案的內容被重複拷貝 c語言中h檔案中我們需要新增 ifndef才能實現這個功能 在c語言中,我們可以使用很多的庫方法去方便開發。例如,stdio.h檔案中的printf函式用於輸出資訊。相應應在oc語言中,也有很多...