Objective-C概述

OC概述

? Objective-C簡(jiǎn)稱OC济似,OC是C語言的擴(kuò)充柏肪,并且OC是iOS和OS X操作系統(tǒng)的編程語言蝇更。
? 1980年初發(fā)明OC語 -> 1988年NeXT -> 1996年OC成為蘋果主要編程語言

OC語言的特點(diǎn)

? C語言的超集然遏,允許在OC中使用C語言代碼逊谋,編譯器兼容C語言程序扒腕。
? 具備完善的面向?qū)ο筇匦跃畹怼7庋b,繼承瘾腰,多態(tài)皆的。
? 包含一個(gè)運(yùn)行時(shí)系統(tǒng)。
? 類庫(kù)豐富蹋盆。

類和對(duì)象的概念和區(qū)別

類是具有相同特征和行為的事物的抽象
對(duì)象是類的實(shí)例费薄,萬事萬物皆對(duì)象。
類是對(duì)象的類型栖雾。
區(qū)分對(duì)象的黃金法則:當(dāng)我們看到某個(gè)概念的時(shí)候如果每個(gè)人 的大腦中想到的都是同一個(gè)事物的時(shí)候楞抡,此時(shí)就是對(duì)象;反之則是類析藕。

類和對(duì)象的定義

? OC中類的定義分為兩個(gè)部分:接口部分和實(shí)現(xiàn)部分召廷。
? 接口部分:對(duì)外聲明類的特征和行為。(.h文件中)
? 實(shí)現(xiàn)部分:行為的具體實(shí)現(xiàn)账胧。(.m文件中)

?   接口部分標(biāo)志:@interface...@end 竞慢。
?   @interface...@end 的作用:聲明類的實(shí)例變量(成員變量)和方法,即特征和行為治泥。
?   接口部分包含的內(nèi)容:類名筹煮、父類名、實(shí)例變量车摄、方法等寺谤。

?   實(shí)現(xiàn)部分標(biāo)志:@implementation...@end仑鸥。
?   @implementation...@end 的作用:類行為的具體實(shí)現(xiàn)(方法的實(shí)現(xiàn))。

下面我們來定義一個(gè)描述手機(jī)類

第一步在.h文件中對(duì)外聲明類的特征和屬性

接口部分:
@interface Phone : NSObject
{
    @public
    NSString *_poneName;
    NSString *_phoneColor;
   float _phoneSize;
    float _phoneMoney;
}
//對(duì)象方法
-(void)sayHi;
-(void)write;
@end

第二步在.m文件中進(jìn)行行為的具體實(shí)現(xiàn)

@implementation Phone
- (void)sayHi{
    NSLog(@"正在打電話变屁!");
}
- (void)write{
    NSLog(@"正在發(fā)短信Q劭 !");
}
@end

第三部在main.m中初始化一個(gè)對(duì)象

1.導(dǎo)入頭文件

#import "Phone.h"

2在“ main(int argc, const char * argv[]) {“和“ return 0中初始化對(duì)象

 Phone * phone =[[Phone alloc] init];
    phone->_poneName = @"小米";
    phone->_phoneColor = @"粉色";
    phone->_phoneSize = 6.50;
    phone->_phoneMoney =1699;
    NSLog(@"品牌:%@粟关,顏色:%@疮胖,屏幕大小:%1.f闷板,價(jià)格:%2.f",phone->_poneName,phone->_phoneColor, phone->_phoneSize,  phone->_phoneMoney);

類和文件

 ?類的定義過程需要進(jìn)行分文件放置澎灸。文件分為.h(接口文件)和.m(實(shí)現(xiàn)文件)。
 
 ?注意:
    1.使用類名命名文件遮晚。
    2.h文件管理類的接口部分性昭;.m文件管理類的實(shí)現(xiàn)部分。
    
 ?只要符合類的接口部分和實(shí)現(xiàn)部分的定義县遣,就可以定義出一個(gè)類糜颠。
 
 ?文件中可以定義多個(gè)類,但是文件的名字以類名命名萧求,對(duì)于其他的開發(fā)人員很難發(fā)現(xiàn)文件中含有的其他類其兴。比如:Person文件中定義一個(gè)Dog類就很難發(fā)現(xiàn)。

對(duì)象的創(chuàng)建

?   類是一個(gè)抽象的概念夸政,在實(shí)際開發(fā)中程序的運(yùn)行是通過對(duì)象間的相互協(xié)作來完成元旬。

?   對(duì)象是類的實(shí)例,通過類來創(chuàng)建對(duì)象守问。

?   創(chuàng)建對(duì)象分兩步:
  ? 分配內(nèi)存空間:根據(jù)類中聲明的實(shí)例變量為對(duì)象在堆區(qū)分配內(nèi)存匀归,并返回首地址。
  ? 初始化:為對(duì)象的實(shí)例變量設(shè)置初始值酪碘。

分配內(nèi)存空間朋譬,并且將內(nèi)存空間數(shù)據(jù)清零

    Teacher *teacher = [Teacher alloc];

初始化

teacher = [teacher init];

兩步是一個(gè)連續(xù)的過程,一般情況下兴垦,合并操作

Teacher *teacher = [[Teacher alloc] init];
      

開辟空間

+ (instancetype)alloc;
“+”表示方法是類方法徙赢,只能由類調(diào)用。instancetype返回值類型探越,可以用id(任意對(duì)象類型)替代狡赐。

初始化

- (instancetype)init;
“-”對(duì)象方法,對(duì)象調(diào)用钦幔≌硖耄“instancetype”返回值類型。

instancetype和id區(qū)別

? instancetype可以返回和方法所在類相同類型的對(duì)象鲤氢,id只能返回未知類型的對(duì)象搀擂。
? instancetype只能作為返回值和參數(shù)西潘,id還可以用來定義變量。
? instancetype會(huì)告訴編譯器當(dāng)前的類型哨颂,但id對(duì)于編譯器卻是無類型的喷市,調(diào)用任何方法不會(huì)給出錯(cuò)誤提示。
? 對(duì)于init方法威恼,id和instancetype是沒有區(qū)別的品姓。因?yàn)榫幾g器會(huì)把id優(yōu)化成instancetype。當(dāng)明確返回的類型就是當(dāng)前Class時(shí)箫措,使用instancetype能避免id帶來的編譯不出的錯(cuò)誤情況腹备。

下面我們將對(duì) Teacher *teacher = [[Teacher alloc] init]中的指針解釋一下:

?   指針存儲(chǔ)對(duì)象的首地址,代指對(duì)象斤蔓。OC中使用指針代指對(duì)象植酥,進(jìn)行操作。 
屏幕快照 2017-07-29 上午11.26.06.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末附迷,一起剝皮案震驚了整個(gè)濱河市惧互,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喇伯,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拨与,死亡現(xiàn)場(chǎng)離奇詭異稻据,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)买喧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門捻悯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人淤毛,你說我怎么就攤上這事今缚。” “怎么了低淡?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵姓言,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我蔗蹋,道長(zhǎng)何荚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任猪杭,我火速辦了婚禮餐塘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘皂吮。我一直安慰自己戒傻,他們只是感情好税手,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著需纳,像睡著了一般冈止。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上候齿,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天熙暴,我揣著相機(jī)與錄音,去河邊找鬼慌盯。 笑死周霉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的亚皂。 我是一名探鬼主播俱箱,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼灭必!你這毒婦竟也來了狞谱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤禁漓,失蹤者是張志新(化名)和其女友劉穎跟衅,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體播歼,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伶跷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了秘狞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叭莫。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖烁试,靈堂內(nèi)的尸體忽然破棺而出雇初,到底是詐尸還是另有隱情,我是刑警寧澤减响,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布靖诗,位于F島的核電站,受9級(jí)特大地震影響辩蛋,放射性物質(zhì)發(fā)生泄漏呻畸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一悼院、第九天 我趴在偏房一處隱蔽的房頂上張望伤为。 院中可真熱鬧,春花似錦、人聲如沸绞愚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)位衩。三九已至裆蒸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間糖驴,已是汗流浹背僚祷。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贮缕,地道東北人辙谜。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像感昼,于是被迫代替她去往敵國(guó)和親装哆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容