版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第二章類、對(duì)象與方法目標(biāo)了解面向過程和面向?qū)ο蟪绦蛟O(shè)計(jì)思想熟悉創(chuàng)建類和類的對(duì)象和實(shí)例本章結(jié)構(gòu)面向?qū)ο笏枷氲慕榻BObjective-C中的實(shí)例和方法Objective-C程序分為3部分
@interface部分
@implementation部分
program部分獲取實(shí)例變量的值變量的訪問函數(shù)面向過程(OP)面向過程的程序設(shè)計(jì)工作主要圍繞設(shè)計(jì)解題過程來進(jìn)行,更加側(cè)重于細(xì)節(jié)如何實(shí)現(xiàn)。C、FORTRAN都是面向過程的程序設(shè)計(jì)語言。面向過程開發(fā)模式的優(yōu)缺點(diǎn)優(yōu)點(diǎn):算法描述準(zhǔn)確缺點(diǎn):編程復(fù)雜.可讀性差系統(tǒng)維護(hù)困難程序代碼可重用性差一個(gè)處理分?jǐn)?shù)的程序1:面向過程設(shè)計(jì)思想#import<Foundation/Foundation.h>intmain(intargc,constchar*argv[]){@autoreleasepool{ intnumerator=1; intdenominator=3;NSLog(@"Thefractionis%i/%i",numerator,denominator);}return0;}一個(gè)處理分?jǐn)?shù)的程序2:面向過程設(shè)計(jì)思想#import
<Foundation/Foundation.h>
struct
FenShu
{
int
fenzi;
int
fenmu;
};
int
main(int
argc,
const
char
*
argv[])
{
@autoreleasepool
{
struct
FenShu
fen1={1,3};
NSLog(@“fenshu
=
%i/%i”,fen1.fenzi,fen1.fenmu);
}
return
0;
}面向?qū)ο螅∣O)1.面向?qū)ο蟪绦蛟O(shè)計(jì)方法側(cè)重于從整體上對(duì)程序進(jìn)行分析,用對(duì)象分解取代功能分解。 可以認(rèn)為:面向?qū)ο蟮某绦蚴怯蓪?duì)象和對(duì)象間的相互作用構(gòu)成的。面向?qū)ο蟮某绦蚴菍?duì)象的有機(jī)結(jié)合。2.面向?qū)ο蟮奶攸c(diǎn)有三個(gè):封裝、繼承、和多態(tài)。3.面向?qū)ο蠓椒ǖ闹饕獌?yōu)點(diǎn)與人類習(xí)慣的思維方法比較一致;穩(wěn)定性好;可重用性好;可維護(hù)性好。類與對(duì)象對(duì)象:現(xiàn)實(shí)世界中某個(gè)具體的物理實(shí)體,每
個(gè)對(duì)象都包含特定的屬性和行為類:現(xiàn)實(shí)世界中具有相同屬性和行為的物理
實(shí)體的抽象。學(xué)生:類那個(gè)背書包的學(xué)生:對(duì)象自行車:類我的那輛自行車:對(duì)象類與對(duì)象的關(guān)系(cont.)類是對(duì)對(duì)象的抽象對(duì)象(Object)是類的實(shí)例類對(duì)象對(duì)象對(duì)象對(duì)象對(duì)象對(duì)象實(shí)例化實(shí)例和方法實(shí)例:實(shí)例是對(duì)象的另一種稱謂方法:實(shí)例具有的行為對(duì)象使用對(duì)象執(zhí)行的操作你的汽車駕駛加油洗車維修Objective-C程序分為3部分@interface部分用于描述類和類的方法@implementation部分包括實(shí)現(xiàn)這些方法的實(shí)現(xiàn)代碼Program部分包含實(shí)現(xiàn)程序預(yù)期目的的程序代碼(或叫測試代碼)@interface
部分定義一個(gè)新類時(shí),
一:必須要命名它的父類二:要定義處理該類對(duì)象時(shí)要用到的各種操作方法及返回值類型。
@interfaceNewClassName:ParentClassName propertyAndMethodDeclatations;@end注意:約定類名以大寫字母開頭
實(shí)例變量和方法都以小寫字母開頭,多個(gè)字母構(gòu)成則后面的字母大寫一個(gè)處理分?jǐn)?shù)的Objective-C類@interface部分-(void)setNumerator:(int) n;方法類型方法返回值方法名方法參數(shù)類型方法參數(shù)名:表示該方法是一個(gè)實(shí)例方法+:表示該方法是一個(gè)類方法一個(gè)處理分?jǐn)?shù)的Objective-C類@interface部分@interfaceFraction:NSObject{ intnumerator; intdenominator;}-(void)print;-(void)setNumerator:(int)n;-(void)setDenominator:(int)d;@end一個(gè)處理分?jǐn)?shù)的Objective-C類@implementation部分@implementation部分包含聲明在@interface部分方法的實(shí)現(xiàn)代碼一般格式:
@implementationNewClassNamemethodDefinitions;@end每種方法的定義首先指定方法(或者實(shí)例)的類型、返回值、參數(shù)類型,后面將方法的定義放入花括號(hào)中。一個(gè)處理分?jǐn)?shù)的Objective-C類@implementation部分@implementationFraction-(void)print{ NSLog(@"%i/%i",numerator,denominator);}-(void)setNumerator:(int)n{numerator=n;}-(void)setDenominator:(int)d{denominator=d;}@end一個(gè)處理分?jǐn)?shù)的Objective-C類Program部分Program部分包含解決特定問題的代碼,必須有一個(gè)main方法,這是程序開始的地方在Program文件中必須導(dǎo)入
#import"Fraction.h"頭文件一個(gè)處理分?jǐn)?shù)的Objective-C類Program部分#import<Foundation/Foundation.h>#import"Fraction.h"intmain(intargc,constchar*argv[]){@autoreleasepool{Fraction*myFraction;myFraction=[Fractionalloc];myFraction=[myFractioninit];[myFractionsetNumerator:1];[myFractionsetDenominator:3];NSLog(@"TheValueofMyFractionis:");[myFractionprint];}return0;}Program部分Fraction*myFraction;myFraction是Fraction類型的對(duì)象,注意Objective-C中采用指針,即實(shí)際表示myFraction是對(duì)Fraction的一個(gè)引用。myFraction=[[Fractionalloc]init];Fraction類發(fā)送消息,要求使用alloc方法分配內(nèi)存空間,alloc方法繼承來自NSObject類的方法調(diào)用alloc方法后,分配了存儲(chǔ)空間在發(fā)送消息進(jìn)行實(shí)例變量的初始化,即發(fā)送init的消息,并返回一個(gè)初始化的對(duì)象。[myFractionsetNumerator:1];[myFractionsetDenominator:3];
將消息setNumerator:發(fā)送給myFraction,提供一個(gè)值為1的參數(shù),由于myFraction是Fraction類的對(duì)象,實(shí)際調(diào)用Fraction類的setNumerator:方法;[myFractionprint];
調(diào)用print方法,打印輸出分?jǐn)?shù)的值Program部分獲取實(shí)例變量的值實(shí)例方法可以直接訪問它的實(shí)例變量如果從main函數(shù)中訪問實(shí)例變量,怎么實(shí)現(xiàn)?需要編寫特殊方法來檢索實(shí)例變量的值
-(int)numerator{returnnumerator;}-(int)denominator{returndenominator;}
注意:方法名與實(shí)例變量名相同。
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 沈陽高中語文試題及答案
- 融媒體招聘考試試題及答案
- 輔警入警培訓(xùn)課件模板
- 輔助生殖技術(shù)176號(hào)文件
- 《GAT 1400.2-2017公安視頻圖像信息應(yīng)用系統(tǒng) 第2部分:應(yīng)用平臺(tái)技術(shù)要求》專題研究報(bào)告
- 2026 年初中英語《形容詞》專項(xiàng)練習(xí)與答案 (100 題)
- 《GAT 167-2019法醫(yī)學(xué) 中毒尸體檢驗(yàn)規(guī)范》專題研究報(bào)告
- 2026年深圳中考英語拔尖培優(yōu)特訓(xùn)試卷(附答案可下載)
- 2026年大學(xué)大二(交通運(yùn)輸)交通規(guī)劃理論階段測試試題及答案
- 2026年深圳中考數(shù)學(xué)沖刺實(shí)驗(yàn)班專項(xiàng)試卷(附答案可下載)
- 江蘇省無錫市2024-2025學(xué)年高一上學(xué)期期末化學(xué)試題
- 2025年統(tǒng)編版五年級(jí)上冊(cè)語文期末專項(xiàng)訓(xùn)練:字音、字形、字義(含答案)
- 睡眠對(duì)考試的重要性
- 網(wǎng)絡(luò)輿情態(tài)勢(shì)感知系統(tǒng)-洞察分析
- 高思導(dǎo)引3-6年級(jí)分類題目-數(shù)字謎02-三下02-簡單乘除法豎式
- 情侶自愿轉(zhuǎn)賬贈(zèng)與協(xié)議書范本
- 2024-2030年中國異辛烷行業(yè)市場發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 力士樂液壓培訓(xùn)教材
- JJG 692-2010無創(chuàng)自動(dòng)測量血壓計(jì)
- 人教版四年級(jí)數(shù)學(xué)下冊(cè)第四單元大單元教學(xué)任務(wù)單
- 旋挖鉆孔灌注樁施工記錄表(新)
評(píng)論
0/150
提交評(píng)論