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> 跟2.foundation/foundation.h#include
一樣,拷貝檔案的內容;
2> 可以自動防止檔案的內容被重複拷貝
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型別其實是oc語言物件導向語言,char
型別,如下:
typedef signed char bool
2>bool型別中的
yes和
no是巨集定義,將1、
0強制轉換成
bool
型別:#define yes (bool)1
#define no (bool)0
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和oc方法常見錯誤@end
中間不能巢狀
@implementation
和@end
2>方法的宣告中不能寫實現;
3>方法的宣告在
{}大括號外面;
4>成員變數在宣告時不能初始化,只有物件才有此屬性,所以只有物件才能賦值;
5>不能寫
- static (void)run;
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語言中,也有很多...