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

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論