1,OC類、對(duì)象、方法_第1頁
1,OC類、對(duì)象、方法_第2頁
1,OC類、對(duì)象、方法_第3頁
1,OC類、對(duì)象、方法_第4頁
1,OC類、對(duì)象、方法_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Objective-C語法學(xué)習(xí) 主講:茹轉(zhuǎn) 第一節(jié)OC面向?qū)ο笾悺?duì)象和方法 本節(jié)學(xué)習(xí)內(nèi)容 1、Objective-C 語言概述 2、掌握類和對(duì)象的特征 3、創(chuàng)建對(duì)象,方法調(diào)用 4、自定義初始化方法 5、點(diǎn)語法的使用 ObjectiveC語言概述 Objective C(簡(jiǎn)稱OC)是iOS開發(fā)的核心語言 OC是在C語言的基礎(chǔ)上,對(duì)C語言進(jìn)行了封裝,增加了面向?qū)ο笳Z法 iOS開發(fā)也兼容C語言、C+混編 第一個(gè)OC程序 打開打開Xcode,新建項(xiàng)目新建項(xiàng)目 打開Xcode,新建項(xiàng)目 選擇最簡(jiǎn)單的命令行項(xiàng)目 創(chuàng)建新項(xiàng)目 項(xiàng)目界面 Xcode 常用快捷方式 過度到OC語言 關(guān)鍵字 字符串 字符串都是

2、以開頭的,比如”Hello”是OC中的字符串 控制臺(tái)打印 C語言中使用printf(“Hello”)打印字符串,OC中使用NSLog函數(shù) 打印字符串 interface,implementation,end、public, protected, private, selector try, catch, throw, finally protocol, class 編譯后的路徑 C語言的源文件拓展名”.c”, OC的源文件拓展名為”.m” OC中使用NSLog函數(shù)打印輸出 編譯器會(huì)將.m文件編譯為.o目標(biāo)文件,比如說main.m編譯成功 后會(huì)變成main.o文件 目標(biāo)文件: /Users/ap

3、ple/Library/Deceloper/Xcode/DerivedData/1.HelloWorld - dmqifpdlqagsxpgjhoywmkgrbyij/Build/Intermediates/1.HelloWorld. build/Debug/1.HelloWorld.build/Objects-normal/x86_64 可執(zhí)行文 件:/Users/apple/Library/Developer/Xcode/DerivedData/1.HelloWo rld-dmqifpdlqagsxpgjhoywmkgrbyij/Build/Products/Debug 編譯后的路 徑:/

4、Users/apple/Library/Developer/Xcode/DerivedData/ 面向過程、面向?qū)ο?面向過程與面向?qū)ο蠖际且环N編程思想 什么是面向?qū)ο?(1)面向?qū)ο缶褪怯糜?jì)算機(jī)語言來模擬顯示真實(shí)世界里的物 體 然后用編程邏輯來組織對(duì)象處理問題 ( 2)面向?qū)ο笫乾F(xiàn)實(shí)世界模擬的自然延伸,現(xiàn)實(shí)世界中的任 何物體 都可以看作是對(duì)象。 ( 3)對(duì)象之間通過消息相互作用,另外,現(xiàn)實(shí)世界中任何實(shí)體 都可以歸屬于某類事物,任何對(duì)象都是某一類事物的實(shí)例 2.面向?qū)ο蟮膬?yōu)點(diǎn) 1)傳統(tǒng)編程語言: 程序 = 算法+數(shù)據(jù) 2)面向?qū)ο缶幊陶Z言:程序 = 對(duì)象+消息 3)結(jié)構(gòu)清晰,維護(hù)簡(jiǎn)單,可擴(kuò)展性

5、,代碼重用 3.面向?qū)ο蟮娜齻€(gè)特點(diǎn) (1)封裝 1封裝是一種信息隱藏技術(shù),它體現(xiàn)于對(duì)類的說明,是 類的重要特性 2封裝就是把客觀事物封裝成抽象的類 (2)繼承 1繼承是子類自動(dòng)共享父類數(shù)據(jù)和方法的機(jī)制 2繼承的過程就是從一般到特殊的過程 3)多態(tài) 對(duì)象根據(jù)所接收的消息而做出不同的動(dòng)作 舉例 去西藏旅游 面向過程:我購(gòu)買自行車,然后用腳去踏車的踏腳板, 輪子開始轉(zhuǎn),騎了10米,100米,10公里,100公里, 然后經(jīng)過湖北,四川到達(dá)西藏。 面向?qū)ο螅何易屪孕熊囖D(zhuǎn)動(dòng),然后就到達(dá)了西藏 常用類型 類和對(duì)象 什么是類 1)類是對(duì)象的模板,是對(duì)實(shí)體的一個(gè)描述 2)類是oc的核心,oc程序都圍繞著類進(jìn)行

6、類和對(duì)象有什么不同 類是抽象的概念,對(duì)現(xiàn)實(shí)生活中事物的描述,比如說:”人” 對(duì)象是一個(gè)你能看的見的具體實(shí)體,也就是事物實(shí)實(shí)在在存在的個(gè) 體。 類與對(duì)象的關(guān)系圖 類與對(duì)象的關(guān)系圖 對(duì)象的屬性和方法 列出尼古拉斯.凱奇駕駛的這輛法拉利F360 Spider的屬性和方法 列出小狗對(duì)象的屬性和方法 屬性: 品牌:法拉利 型號(hào):F360 Spider 顏色:黃色 價(jià)格:380萬元 方法: 發(fā)動(dòng) 停止 加速 屬性: 顏色:白色 方法: 叫 跑 吃 總結(jié):類和對(duì)象的區(qū)別 定義類 定義一個(gè)類的步驟 1、定義類名 2、編寫類的屬性-實(shí)例變量 3、編寫類的行為-方法 類的申明和實(shí)現(xiàn) OC類的聲明 類的聲明放在“類

7、名+.h”文件中。 如:Person.h文件。 類的聲明主要有兩部分組成:實(shí)例變量和方法 用interface來申明一個(gè)類,冒號(hào)表示繼承 關(guān)系,冒號(hào)后面的是類的父類。 NSObject是所有類的父類。 end 關(guān)鍵字結(jié)束。 實(shí)例變量 實(shí)例變量可以使用OC語言中的任何數(shù)據(jù) 類型(包括基本類型和指針類型) 在聲明實(shí)例變量的時(shí)候不能為其初始化, 系統(tǒng)默認(rèn)會(huì)初始化。 實(shí)例變量的默認(rèn)作用范圍是整個(gè)類以及 子類。 OC的方法聲明 類的實(shí)現(xiàn) implementation Person -(int)Identify -(id)initWithAge:(int) age identify: (int) Iden

8、tify return identify; if(self = super init) -(int)Age _age =age; return age; _identify =identify; -(void) setAge: (int) age return self; age = _age; end end 對(duì)象的創(chuàng)建和使用 OC中對(duì)象通過指針來聲明。如:Person*person; OC中對(duì)象的創(chuàng)建,使用alloc來創(chuàng)建一個(gè)對(duì)象。編譯器會(huì)給對(duì)象分 配一塊可用的內(nèi)存地址。然后需要對(duì)對(duì)象進(jìn)行初始化即調(diào)用init方 法,這樣這個(gè)對(duì)象才可以使用。如: 方法嵌套的形式來調(diào)用,如: OC中方法的調(diào)用

9、 OC語言中采用特定的語言調(diào)用類或者實(shí)例(對(duì)象)的方法稱為發(fā)送 消息或方法調(diào)用。 對(duì)象名 方法名; set方法和get方法 set方法和get方法是用來訪問和修改類里面的屬性值。 set方法是對(duì)某一個(gè)屬性設(shè)值。 get方法是獲取某一個(gè)屬性值。 OC里面的命名規(guī)范get方法名不需要加get前綴。 設(shè)置器與訪問器 設(shè)置器:設(shè)置、修改對(duì)象中某一個(gè)實(shí)例變量的值 訪問器:訪問對(duì)象某一個(gè)實(shí)例變量的值 課堂練習(xí)1 1定義一個(gè)汽車類Car,它具有兩個(gè)屬性,名稱(name)和速度 (speed).還有一個(gè)加速方法,該方法實(shí)現(xiàn)就打印“XX汽車啟 動(dòng)了,時(shí)速為XXX”. 汽車類 屬性: 名稱(name) 速度(sp

10、eed) 方法: 啟動(dòng)方法:打印“XX汽車啟動(dòng)了,時(shí)速為xxx” 課堂練習(xí)2 定義一個(gè)管理員Manager的類 定義其屬性:username(用戶名)和password(密碼) 為兩個(gè)屬性添加set和get方法。 設(shè)計(jì)一個(gè)修改密碼的方法changePassword,調(diào)用效果如下 對(duì)象的初始化 對(duì)象必須先創(chuàng)建,然后初始化,才能使用。 NSObject *object = NSObject allocinit; 首先為對(duì)象分配內(nèi)存地址,為初始化做準(zhǔn)備。初始化是對(duì)象創(chuàng)建 過程中將新分配對(duì)象的狀態(tài)設(shè)置為合理的初始值、使之處于可用 狀態(tài)的階段。通過約定,我們要求初始化方法以init開頭,并且在 成功完成

11、初始化后,返回當(dāng)前對(duì)象,如果失敗則返回nil. 自定義初始化方法,可以傳入?yún)?shù) 自定義初始化方法的實(shí)現(xiàn) -(id)initWithAge:(int)age self =super init; if (self !=nil) _age =age; return self; 調(diào)用自定義初始化方法 約定俗稱的命名規(guī)則 類名首字母大寫 變量名和方法名首字母小寫 使用駝峰表示 self 和super 關(guān)鍵字 self 指的是類的對(duì)象本身 super 是父類對(duì)象本身 self 用來調(diào)用本類對(duì)象的方法 super 調(diào)用從父類繼承下來的方法 課堂練習(xí)3 定義一個(gè)書籍類Book,具有屬性:名稱(title)、頁

12、數(shù)(pageNum), 要求這兩個(gè)屬性,通過初始化方法設(shè)置。定義一個(gè)方法 showDetail,用來在控制器臺(tái)打印該書籍對(duì)象的信息。 點(diǎn)語法的調(diào)用 點(diǎn)語法 設(shè)置屬性值 點(diǎn)語法 訪問屬性值 課堂練習(xí)4 修改之前的練習(xí),通過點(diǎn)語法訪問屬性和修改屬性, 驗(yàn)證是否調(diào)用set和get方法。 命名規(guī)則和文件的組織 命名規(guī)則 變量的命名和C語言相同 類的命名,首字母大寫,如ClassA 方法的名,首字母小寫,如thisIsMethod 文件的組織 課堂練習(xí)5 設(shè)計(jì)如下兩個(gè)類Person和Dog,狗有一個(gè)自定義初始化 方法,可以傳入狗的名字和顏色 Person有一個(gè)遛狗的方法,可以傳入一個(gè)時(shí)間值,9點(diǎn) 帶狗出去跑,10點(diǎn)帶狗玩撿球的游戲,11點(diǎn)逗狗叫。 (直接打印“帶狗出去跑”后面兩個(gè)類似) Person 屬性:名字 方法:遛狗 Dog 屬性:狗的名字、顏色 方法:跑、撿球、叫 今日作業(yè) 1、創(chuàng)建一個(gè)人的類(Person),這個(gè)人有名字、年齡、體重、并且可 以設(shè)置和獲取以上屬性。 2、設(shè)計(jì)一個(gè)Rectangle這樣一個(gè)類(矩形)。允許用戶輸入其邊長(zhǎng),計(jì) 算出該矩形的面積和周長(zhǎng)。 3、設(shè)計(jì)如下幾個(gè)類,Car自定義初始化方法,初始化方法傳入引擎 對(duì)象和車燈對(duì)象。當(dāng)車啟動(dòng)的時(shí)候,會(huì)調(diào)用引擎轉(zhuǎn)動(dòng),車燈亮燈, 當(dāng)車停止的時(shí)候調(diào)用引擎停止轉(zhuǎn)動(dòng),車燈熄滅。 汽車(Ca

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論