OC—面向?qū)ο?/h2>

1.OC: Object- C ,面向?qū)ο蟮恼Z言

2、OC和C的區(qū)別

<1> oc是 c的超集 ,oc是在c語言的基礎(chǔ)上做了擴(kuò)展,c語言中的所有語法,在oc中都可以使用,甚至你可以在工程里加入C++ 語言

<2>oc在c基礎(chǔ)上擴(kuò)展了面向?qū)ο蟮奶攸c(diǎn)

<3>oc 是一門運(yùn)行時(shí)語言

<4>oc為我們提供了豐富的類庫

3、 如何學(xué)習(xí)好OC ?


//2.看蘋果的官方文檔(API接口網(wǎng)站)

//3.看博客

//4.自己的錯(cuò)誤總結(jié)

4、 面向?qū)ο缶幊痰暮诵模侯惡蛯?duì)象

面向?qū)ο缶幊痰娜筇卣鳎悍庋b,繼承,多態(tài)

類:具有相同特征和行為(功能)事物的抽象

對(duì)象:就是類的實(shí)例化

5、 創(chuàng)建一個(gè)類:

//1、通過Cocoa touch class 模板,創(chuàng)建類,自動(dòng)生成.h 和 .m文件

//2、在.h 文件中寫類的特征(實(shí)例變量) 和方法的聲明

//3、在.m中寫實(shí)現(xiàn)部分

——*使用類創(chuàng)建對(duì)象*——

//1、開辟內(nèi)存空間

//2、初始化

6、[ ]中括號(hào)調(diào)用方法

//[Person alloc] 給person 這個(gè)類發(fā)送一個(gè)消息alloc(開辟內(nèi)存空間)

//創(chuàng)建對(duì)象person1

//每一個(gè)對(duì)象 isa指針 用來指向它的父類,之所有能夠調(diào)用父類的方法,完全是因?yàn)檫@個(gè) isa? 指針;

7、 初始化 如果初始化沒有賦值這時(shí)默認(rèn)所有的實(shí)例變量都為空;

person1 = [person1 init];

這條語句同時(shí)完成了兩件事:開辟內(nèi)存并初始化;

8、例子:

.h文件:

//@interface 是接口 Person 是類名? ? :繼承自誰 NSObject 是所有Oc類中的基類

//---------------------------Person類的創(chuàng)建對(duì)象的特征---------------------

@interface Person : NSObject

//特征一定要寫在下面那對(duì)大括號(hào)里面

{? ? ? @public? ? //實(shí)例變量對(duì)@public 修飾后的就能在類的外部訪問到這些實(shí)例變量了;

//類的外部指:.h 和.m 之外的其他文件就叫類的外部

//類的內(nèi)部指:.h 和.m 文件之內(nèi)

//NSString 是OC中字符串類

NSString *_name;//姓名NSString 不是基本數(shù)據(jù)類型,所以定義它需要加*

NSInteger? ? _age;//年齡NSInteger 是基本數(shù)據(jù)類型,所以定義變量時(shí)不需要加*號(hào)

NSString *_sex;//性別

// ----------------------------Persson類型創(chuàng)建出對(duì)象所擁有的行為----------

//行為的聲明部分

//用 (減號(hào))(- )號(hào) 修飾的方法屬于對(duì)象方法,這個(gè)方法只能有我們定義這個(gè)類的創(chuàng)建出來對(duì)象來調(diào)用

//用加好(+)修飾的方法屬于類方法,這這方法只能有類來調(diào)用

- (id)init;//重寫inint寫法

- (void)sayHello;//小駝峰命名法

- (void)eat;

//添加一個(gè)帶參數(shù)的方法

//一個(gè)冒號(hào):代表一個(gè)參數(shù)

//寫一個(gè)帶有參數(shù)的方法時(shí)格式<? ? :(數(shù)據(jù)類型)參數(shù)名? >

- (void)talk:(NSString *)content;? ? //隱匿有參數(shù)數(shù)據(jù)類型

- (void)talk:(NSString *)content withSonmeone : (NSString *)name;

@end

————————————————————————

.m文件:

/@implementation 是類的實(shí)現(xiàn)部分

@implementation Person

//id 范類型,返回值可以指向任何類型的對(duì)象? 類似于void *? ;

- (id)init{—————————賦給初始值————————

_name = @"翔哥";

_sex = @"妖";

_age = 18;

//打印self地址

NSLog(@"self地址:%p",self);

//誰調(diào)用這個(gè)方法self 指的就是誰

return self;

————————————————————————————————————

main.m? 文件:

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

//調(diào)用sayhello的方法

[p sayHello];

p->_name = @"zhangSan";

p->_age = 18;

p->_sex = @"妖";

[p sayHello];

//調(diào)用吃得方法

[p eat];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容