第7章類的基本構(gòu)架.ppt_第1頁
第7章類的基本構(gòu)架.ppt_第2頁
第7章類的基本構(gòu)架.ppt_第3頁
第7章類的基本構(gòu)架.ppt_第4頁
第7章類的基本構(gòu)架.ppt_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、類和對(duì)象的概念,編程面臨的問題領(lǐng)域的客觀世界是由許多類型(如汽車)或看不見的(如會(huì)議)組成的。目標(biāo)就是將客觀世界的事物映射到面向?qū)ο蟮木幊讨?。?duì)象是用于在面向?qū)ο蟮木幊讨忻枋隹陀^事物的節(jié)目單位??陀^世界中的很多對(duì)象都有很多共性,無論屬性或行為如何,抽象這些對(duì)象的共性就可以構(gòu)建類。因此,類是對(duì)象的抽象和歸納,對(duì)象是類的實(shí)例。抽象原則所謂抽象,是在研究對(duì)象中拋棄與個(gè)別、非本質(zhì)或研究主題無關(guān)的次要特征,提取與研究工作相關(guān)的實(shí)際內(nèi)容,進(jìn)行考察,形成對(duì)研究問題的準(zhǔn)確、簡(jiǎn)明的理解。例如,“馬”是抽象的概念。事實(shí)上,兩匹馬并不完全一樣,但是我們拋棄了每匹馬個(gè)體之間的差異,提取了其共同的本質(zhì)特征,形成了“馬”

2、的概念。抽象是科學(xué)研究中經(jīng)常使用的一種茄子方法,是形成概念的必要手段。在電腦軟件開發(fā)領(lǐng)域中,抽象原則的應(yīng)用非常廣泛,概括起來,可以分為過程抽象和數(shù)據(jù)抽象兩個(gè)茄子類別。1 .進(jìn)程抽象進(jìn)程抽象意味著軟件開發(fā)人員可以將完成決策功能的所有操作序列看作單個(gè)實(shí)體。雖然實(shí)際上可能是由一系列較低級(jí)別的操作組成的。使用進(jìn)程抽象,軟件開發(fā)人員可以將復(fù)雜的功能分解為子功能(模塊),如果子功能仍然復(fù)雜,則可以進(jìn)一步分解。這允許開發(fā)人員徐璐在其他抽象級(jí)別考慮問題,在較高級(jí)別思考時(shí),不關(guān)心較低級(jí)別的實(shí)現(xiàn)細(xì)節(jié)。面向進(jìn)程的編程使用進(jìn)程抽象方法。使用進(jìn)程抽象有助于控制和降低整個(gè)程序的復(fù)雜性,但是使用牙齒方法可以說明整個(gè)系統(tǒng)的功

3、能。本身自由度大,標(biāo)準(zhǔn)化和標(biāo)準(zhǔn)化困難,保證軟件質(zhì)量不容易,操作也有困難。(大衛(wèi)亞設(shè),美國(guó)電視電視劇),2。數(shù)據(jù)抽象數(shù)據(jù)抽象將需要系統(tǒng)處理的數(shù)據(jù)與應(yīng)用于這些數(shù)據(jù)的操作結(jié)合起來,根據(jù)功能、特性、功能等抽象數(shù)據(jù)類型進(jìn)行抽象。每個(gè)抽象數(shù)據(jù)類型都包含數(shù)據(jù)和對(duì)該數(shù)據(jù)的賦權(quán)操作,并且只能通過該操作觀察和修改數(shù)據(jù)值。因此,數(shù)據(jù)抽象是比進(jìn)程抽象更嚴(yán)格、更合理的抽象方法。面向?qū)ο蟮木幊淌鞘褂脭?shù)據(jù)抽象方法構(gòu)建程序的類和對(duì)象。強(qiáng)調(diào)將數(shù)據(jù)和操作組合為不可分離的系統(tǒng)單位對(duì)象。在對(duì)象外部,無需知道對(duì)象如何工作,只需知道對(duì)象可以做什么。對(duì)象只要仔細(xì)研究編程所面臨的問題領(lǐng)域的客觀世界,就可以知道客觀世界是由具體的事物構(gòu)成的,每

4、個(gè)事物都有自己的靜態(tài)特征(屬性)和一系列動(dòng)態(tài)特征(動(dòng)作)牙齒。例如,汽車具有顏色、型號(hào)、馬力、制造商等靜態(tài)特性,具有行駛、轉(zhuǎn)彎、停車等動(dòng)態(tài)特性。將客觀世界的牙齒事實(shí)映射到面向?qū)ο蟮木幊讨?,將問題域中的事物抽象成對(duì)象(Object),將事物的靜態(tài)特征(屬性)描述成數(shù)據(jù)集,將事物的動(dòng)態(tài)特征(動(dòng)作)描述成一系列方法。因此,對(duì)象具有以下特征:(1)對(duì)象標(biāo)識(shí)符,即對(duì)象的名稱是用戶和系統(tǒng)識(shí)別的唯一標(biāo)志。例如,汽車的牌照可以用作每個(gè)汽車對(duì)象的標(biāo)識(shí)。對(duì)象id分為“外部id”和“內(nèi)部id”。外部標(biāo)識(shí)由交易方定義者或用戶使用,內(nèi)部標(biāo)識(shí)在系統(tǒng)中唯一標(biāo)識(shí)每個(gè)交易方。在電腦世界中,可以將對(duì)象看作電腦內(nèi)存中的可識(shí)別區(qū)域,

5、存儲(chǔ)固定數(shù)量或可變數(shù)量的數(shù)據(jù)(或數(shù)據(jù)集)。(2)屬性:描述對(duì)象靜態(tài)特性的數(shù)據(jù)集。例如,汽車的顏色、型號(hào)、馬力、制造商等。在Java程序中,牙齒數(shù)據(jù)集稱為數(shù)據(jù)成員。(3)方法:也稱為服務(wù)或作業(yè),是物件動(dòng)態(tài)性質(zhì)(動(dòng)作)的描述。每個(gè)方法確定對(duì)象的行為或功能。例如,汽車的行駛、旋轉(zhuǎn)和停車等行為可以分別用move()、rotate()、stop()等方法進(jìn)行說明。為了避免混淆,在牙齒書中,方法被稱為成員方法。在Java程序中,類是創(chuàng)建對(duì)象的模板,對(duì)象是類的實(shí)例,所有對(duì)象都屬于類。Java程式設(shè)計(jì)是以類別設(shè)計(jì)開始,因此在進(jìn)一步說明物件的相關(guān)知識(shí)之前,請(qǐng)先熟悉類別概念。類對(duì)象是對(duì)事物的抽象,類是對(duì)對(duì)象的抽象

6、和歸納。人類認(rèn)識(shí)客觀世界時(shí)經(jīng)常使用的思維方式是把很多東西歸納成幾個(gè)茄子種類。分類的依據(jù)是抽象,即與當(dāng)前目標(biāo)相關(guān)的本質(zhì)特征的抽象,忽略與當(dāng)前目標(biāo)無關(guān)的非本質(zhì)特征,找出事物的共性,將具有共同性質(zhì)的事物歸結(jié)為一類,推導(dǎo)出抽象的概念類。在面向?qū)ο蟪绦蛟O(shè)計(jì)語言中,類是具有相同屬性和方法的一組對(duì)象的獨(dú)立節(jié)目單位。類的概念使您可以一致地描述屬于該類的所有對(duì)象。例如,“樹有樹根、樹干、茄子和樹葉,可以進(jìn)行光合作用”牙齒說明適用于所有樹,因此不需要對(duì)每個(gè)特定樹進(jìn)行一次此類說明。因此,在定義對(duì)象之前,必須定義類。要描述類,必須:(1)標(biāo)識(shí)類:表示與其他類不同的類的名稱的三個(gè)茄子方面。這是必須的。(2)屬性描述:描

7、述同一物件的靜態(tài)性質(zhì)。(3)方法說明:用于說明同一對(duì)象的動(dòng)態(tài)特性。例如,以下是dog類的說明:class dog /class表示這是類,dog是類id String name。Int AverageWeight類的屬性(靜態(tài)特性)int AverageHeightPublic void move()類的方法(動(dòng)態(tài)屬性)publicvoidshowdog()、dog類、類到對(duì)象關(guān)系類為屬于該類的所有對(duì)象提供抽象定義,對(duì)象是符合該定義的實(shí)體。類和對(duì)象之間的關(guān)系就像模具和牙齒模具鑄造的鑄件之間的關(guān)系。也就是說,可以將類和對(duì)象之間的關(guān)系看作抽象和具體的關(guān)系。在面向?qū)ο蟮木幊讨校瑢?duì)象稱為類的實(shí)例,類是

8、對(duì)象的模板(temp1ate)。類是多個(gè)實(shí)例的綜合抽象,實(shí)例是類的個(gè)人實(shí)物。類和對(duì)象的關(guān)系,如圖所示。類到對(duì)象關(guān)系,類的常規(guī)格式定義(1)系統(tǒng)定義的類,即Java類庫(kù)和系統(tǒng)定義的類。類庫(kù)是Java語言的重要組成部分。Java語言由確定Java程序?qū)懭胍?guī)范的語法規(guī)則和類庫(kù)組成。類庫(kù)在Java程序和運(yùn)行它的系統(tǒng)軟件(Java虛擬機(jī))之間提供了接口。Java類庫(kù)是由發(fā)明家SUN和其他軟件開發(fā)人員編寫的一組Java節(jié)目模塊。每個(gè)模塊通常對(duì)應(yīng)于特定的基本功能和任務(wù),并且經(jīng)過嚴(yán)格測(cè)試,始終正確有效。當(dāng)自己編寫的Java程序需要完成這些功能之一時(shí),可以直接利用這些現(xiàn)成的類庫(kù),而不必從頭開始編寫所有內(nèi)容,這樣

9、不僅提高了編程效率,還保證了軟件的質(zhì)量。(大衛(wèi)亞設(shè),Northern Exposure美國(guó)Java電視劇,程序),(2)自定義班。系統(tǒng)定義的類實(shí)現(xiàn)了許多常用功能,但是用戶程序仍然需要為特定問題的特定邏輯定義自己的類。用戶通過將根據(jù)Java的語法規(guī)則研究的問題描述為Java程序的類來解決特定問題。要編程Java,首先要學(xué)會(huì)定義類。在Java程序中,自定義類的一般格式是類名數(shù)據(jù)成員方法,圖形類的圖形表示,表明類結(jié)構(gòu)由類說明和類主體組成。類的說明部分由類關(guān)鍵字和類名組成,類名符合class標(biāo)識(shí)符的定義規(guī)則。類別主體是類別宣告中包含大括號(hào)的完整內(nèi)容,由資料成員(屬性)和成員方法(方法)組成。數(shù)據(jù)成員描

10、述對(duì)象的屬性。成員方法描述對(duì)象的行為或行為,每個(gè)成員方法確定功能或操作。對(duì)象創(chuàng)建對(duì)象通常由宣言對(duì)象、創(chuàng)建對(duì)象和初始化對(duì)象三個(gè)步驟組成。1對(duì)象宣言對(duì)象聲明是標(biāo)識(shí)對(duì)象的名稱,表示對(duì)象所屬的類。宣言對(duì)象的格式如下:類名對(duì)象名稱表;其中:類名是對(duì)象所屬類的名稱,在聲明類時(shí)定義?!皩?duì)象名稱”(object name)表格表示一個(gè)或多個(gè)對(duì)象名稱,用逗號(hào)分隔多個(gè)對(duì)象名稱。聲明對(duì)象的目的是提供將來編譯過程所需的信息。示例:class_name object_one、object _ two;牙齒語句聲明兩個(gè)對(duì)象object_one、object_two,這兩個(gè)對(duì)象是class_name類的對(duì)象。2構(gòu)建對(duì)象所謂

11、的對(duì)象構(gòu)建實(shí)際上是使用Java提供的new關(guān)鍵字為對(duì)象分配存儲(chǔ)空間。聲明對(duì)象時(shí),如果僅檢查對(duì)象的名稱及其所屬的類,而沒有為對(duì)象分配存儲(chǔ)空間,則該對(duì)象不是類的實(shí)例。只能通過設(shè)置對(duì)象的步驟為對(duì)象分配內(nèi)存,使該對(duì)象成為類的實(shí)例。物件建立格式是物件名稱=new配置方法(),例如object _ one=new class _ name()。object _ two=new class _ name();您也可以在宣告物件時(shí)設(shè)定物件。這稱為建立物件。使用與類名對(duì)象名稱=new構(gòu)造函數(shù)方法()相同的格式創(chuàng)建對(duì)象,例如class _ name object _ one=new class _ name();

12、class _ name object _ two=new class _ name();其中new是Java的關(guān)鍵字,也稱為運(yùn)算符。因?yàn)閚ew的作用是創(chuàng)建對(duì)象并為對(duì)象分配存儲(chǔ)空間。執(zhí)行New class_name()會(huì)產(chǎn)生class_name()類別的實(shí)體(物件)。3 .初始化對(duì)象是在類中創(chuàng)建對(duì)象時(shí)為該對(duì)象指定初始狀態(tài)(即數(shù)據(jù)成員的初始值)的過程。當(dāng)然,主要由一些賦值語句組成。初始化操作是最常用的操作之一,因此為了簡(jiǎn)化牙齒過程,Java提供了稱為配置方法的專用方法。使用對(duì)象,一個(gè)對(duì)象可以具有許多屬性和多個(gè)方法。在面向?qū)ο蟮南到y(tǒng)中,對(duì)象的屬性和方法緊密組合為一個(gè)整體,兩個(gè)牙齒不能分離,只能讀取

13、和修改對(duì)象的屬性值。這是包和信息隱藏的一個(gè)方面。創(chuàng)建對(duì)象后,牙齒對(duì)象具有其自己的數(shù)據(jù)成員和成員方法。您可以參照物件的成員來使用物件。對(duì)象的數(shù)據(jù)成員引用如下:物件名稱。按如下方式引用數(shù)據(jù)成員名稱對(duì)象的成員方法:物件名稱。定義成員方法名稱(參數(shù)表)、示例節(jié)目圓類,以便class yuan double r;Double pi=3.1415double mianji()double s;S=pi * r * rreturn s;public class lei lianxi 1 public static void main(string args)yuan y;y=new yuan();Y.r=1

14、0system . out . print ln(y . mianji();數(shù)據(jù)成員,數(shù)據(jù)成員的聲明數(shù)據(jù)成員,用于說明事物的靜態(tài)特征。通常,聲明數(shù)據(jù)成員需要做的是提供數(shù)據(jù)成員的標(biāo)識(shí)符,并指示該數(shù)據(jù)類型所屬的數(shù)據(jù)類型。這里需要指出的是,除了聲明數(shù)據(jù)成員外,還可以使用修飾符限制對(duì)數(shù)據(jù)成員的訪問。因此,數(shù)據(jù)成員的聲明將成為表達(dá)式數(shù)據(jù)成員類型數(shù)據(jù)成員名稱表。其中表達(dá)式是可選的,表示訪問權(quán)限修飾符public、private、protected和訪問權(quán)限修飾符static、final等。數(shù)據(jù)成員類型是定義Java(例如int和float)允許的各種數(shù)據(jù)類型的關(guān)鍵字。數(shù)據(jù)成員名稱表是一個(gè)或多個(gè)數(shù)據(jù)成員名稱

15、(即自定義標(biāo)識(shí)符),在同時(shí)聲明多個(gè)數(shù)據(jù)成員名稱時(shí)用逗號(hào)分隔。成員方法、成員方法是描述對(duì)象的功能或操作、反映對(duì)象行為并具有相對(duì)獨(dú)立功能的節(jié)目模塊。它類似于之前所說的子程序、函數(shù)等概念。類或?qū)ο罂梢跃哂卸鄠€(gè)成員方法,對(duì)象通過執(zhí)行其成員方法響應(yīng)傳入消息來執(zhí)行特定功能。定義成員方法后,可以在多個(gè)節(jié)目段中多次調(diào)用該方法,從而提高節(jié)目結(jié)構(gòu)的清晰度并提高編程效率。例如,以下成員方法完成兩個(gè)整數(shù)的求和運(yùn)算:完成編寫和調(diào)試后,程序可以隨時(shí)調(diào)用牙齒方法,傳遞其他參數(shù)以完成兩個(gè)整數(shù)的求和運(yùn)算。int add(int x,int y)int z;z=x y;返回(z);為了便于理解,先看一下成員方法的分類。我們可以從

16、不同的角度對(duì)成員方法進(jìn)行分類。在成員方法的源中,可以將成員方法分為(1)類庫(kù)成員方法。這是Java類庫(kù)提供的,用戶只需根據(jù)Java提供的調(diào)用格式使用這些成員方法即可。(2)自定義成員方法。這是為解決用戶的特定問題而創(chuàng)建的成員方法。編程的主要任務(wù)是編寫自定義類、自定義成員方法??梢猿蓡T方法的形式將成員方法分為(1)非參與成員方法。例如,void printStar() (2)具有引用成員方法。例如,除了int add(int x,int y)之外,成員方法的功能還可以分為數(shù)學(xué)、字符處理、圖形等。上述分類的主要目的有助于理解幾個(gè)最常用的茄子名詞,例如類庫(kù)成員方法、參與成員方法等。實(shí)際上,類庫(kù)成員方法可以是沒有成員的方法,也可以是有成員的方法。同樣,參與成員方法可以是類庫(kù)成員方法,也可以是用戶定義的成員方法。在成員方法宣言格式Java程序中,只能在類中執(zhí)行成員方法聲明。表達(dá)式返回值的類型成員方法名稱(格式參數(shù)表)說明節(jié)執(zhí)行語句節(jié),成員方法聲明包含成員方法標(biāo)題和方法正文。其中,成員方法標(biāo)題確定成員方法的名稱、格式參數(shù)的名稱和類型、返回值的類型和返回值的類型。方法的主體由大括號(hào)內(nèi)包含的說明部分和執(zhí)行語句部分組成,用于說明方法功能的實(shí)現(xiàn)。在成員方法標(biāo)頭中:(1)表達(dá)式修

溫馨提示

  • 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)論