




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蟪绦蛟O(shè)計概述抽象原則類對象構(gòu)造方法包本章內(nèi)容面向過程的程序設(shè)計程序=算法+數(shù)據(jù)結(jié)構(gòu)1面向?qū)ο蟪绦蛟O(shè)計概述缺點數(shù)據(jù)和操作是兩個獨立單元編寫算法需考慮問題域的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)改變,算法也需修改面向?qū)ο蟮某绦蛟O(shè)計程序=對象+消息1面向?qū)ο蟪绦蛟O(shè)計概述優(yōu)點數(shù)據(jù)和操作是一個整體對象對用戶公開特定的功能,隱藏實現(xiàn)過程客觀世界由有形的、無形的事物構(gòu)成的,程序設(shè)計的問題域。1面向?qū)ο蟪绦蛟O(shè)計概述類抽象、歸納出對象的共同性。對象描述客觀世界的基本單位。面向?qū)ο蟮奶匦苑庋b性外部訪問者不能隨意存取對象的內(nèi)部數(shù)據(jù),只保留對外接口。1面向?qū)ο蟪绦蛟O(shè)計概述繼承性對象的類之間層次關(guān)系,子類可繼承父類的屬性和操作。多態(tài)性父類的成員被繼承后,具有不同的狀態(tài)和行為。抽象概念從被研究對象中舍棄個別的、非本質(zhì)的、或與研究主旨無關(guān)的次要特征,抽取與研究工作有關(guān)的實質(zhì)性內(nèi)容加以考察,形成對所研究問題正確的、簡明扼要的認(rèn)識。2抽象原則抽象原則過程抽象數(shù)據(jù)抽象過程抽象任何一個完成確定功能的執(zhí)行序列。面向過程程序設(shè)計采用的是過程抽象。將一個復(fù)雜問題分解為多個子問題,以此類推,形成層次結(jié)構(gòu)。2.1過程抽象過程抽象的弊端過程抽象的缺點是只關(guān)注操作本身沒有考慮把操作和數(shù)據(jù)作為一個整體看待數(shù)據(jù)抽象把數(shù)據(jù)和對數(shù)據(jù)的操作結(jié)合成一個不可分的系統(tǒng)單位。根據(jù)功能、性質(zhì)和作用等因素,抽象成不同的抽象數(shù)據(jù)類型。2.2數(shù)據(jù)抽象數(shù)據(jù)抽象的優(yōu)勢用戶無需了解實現(xiàn)細(xì)節(jié)僅提供數(shù)據(jù)的接口而屏蔽實現(xiàn),保持接口不變,不影響用戶使用接口規(guī)定用戶與數(shù)據(jù)之間交互,避免對數(shù)據(jù)的非法操作程序設(shè)計所面對的問題域-客觀世界??陀^世界的每個事物都具有自己的靜態(tài)特征、動態(tài)特征。把客觀世界事實映射到面向?qū)ο蟮某绦蛟O(shè)計,將事物抽象成為對象。2.3對象對象動態(tài)特征(行為)靜態(tài)特征(屬性)對象特征對象標(biāo)識:即對象的名字,是用戶和系統(tǒng)識別它的唯一標(biāo)志。外部標(biāo)識供對象的定義者或使用者使用。內(nèi)部標(biāo)識供系統(tǒng)內(nèi)部唯一地識別每一個對象。屬性:即一組數(shù)據(jù),用來描述對象的靜態(tài)特征。方法:也稱為服務(wù)或操作,每一個方法確定對象的一種行為或功能。2.3對象抽象與當(dāng)前目標(biāo)有關(guān)的本質(zhì)特征,找出事物共性,把具有共性事物歸為一類,得出抽象概念—類。在面向?qū)ο蟮木幊陶Z言中,類是一個獨立的程序單位,是具有相同屬性和方法的一組對象的集合。類的概念能對屬于該類的全部對象進(jìn)行統(tǒng)一的描述。2.4類類是創(chuàng)建對象的模板(template),對象是類的實例(instance)。任何一個對象都是隸屬于某個類的。對象:小明屬性:小明男0001方法:學(xué)習(xí)鍛煉類:學(xué)生屬性:姓名性別學(xué)號方法:學(xué)習(xí)鍛煉數(shù)據(jù)結(jié)構(gòu)方法名抽象實例化2.5類與對象的關(guān)系在定義對象之前應(yīng)先定義類描述一個類,需要指明下述三個方面內(nèi)容類標(biāo)識:類的一個有別于其他類的名字屬性說明:用來描述相同對象的靜態(tài)特征方法說明:用來描述相同對象的動態(tài)特征3類的定義用戶自定義類程序需要針對特定問題的特定邏輯來定義自己的類。用戶按照J(rèn)ava的語法規(guī)則,把所研究的問題描述成Java程序中的類,以解決特定問題。3類的定義自定義類語法格式[類修飾符]class
類名[extends父類][implements接口列表]3類的定義{}
數(shù)據(jù)成員;
成員方法;定義一個簡單的Student類class
Student{StringstudenName;intstudentNumber;
voidhardLearn(){……}}類的方法(動態(tài)特征)類的屬性(靜態(tài)特征)3類的定義類修飾符用于規(guī)定類的一些特殊性,主要用于對類的訪問限制。3.1類修飾符類修飾符說明無修飾符包中訪問特性public公共類,包中類以及其它包中的類使用final最終類,不可被繼承abstract抽象類,不可派生子類無修飾符類只能被同一個包中的類使用,也稱為“包訪問”特性。3.1類修飾符Java規(guī)定同一個程序文件中所有類都在同一個包中。無修飾符類注意事項可被同一個程序文件中的類使用不能被其它程序文件中的類使用public修飾符公共類既可提供給包中的所有類使用,也可提供給其他包中的類使用。3.1類修飾符Java規(guī)定在同一個程序文件中,只能定義一個公共類;程序中其它類既可是無修飾符類,也可是final修飾最終類。public修飾符類注意事項跨包調(diào)用,必須使用import語句引入公共類final修飾符最終類不可被任何其它類所繼承。3.1類修飾符final類優(yōu)勢在完成某種標(biāo)準(zhǔn)功能。提高程序的可讀性。提高安全性。abstract修飾符抽象類刻畫出研究對象的共有行為特征,并通過繼承機(jī)制將特征派生給子類。3.1類修飾符abstract類優(yōu)勢將許多有關(guān)的類組織在一起,提供一個公共的基類。數(shù)據(jù)抽象原則的體現(xiàn)數(shù)據(jù)成員描述事物的靜態(tài)特征。聲明一個數(shù)據(jù)成員需要指明數(shù)據(jù)成員的標(biāo)識符,及其所屬的數(shù)據(jù)類型。3.2數(shù)據(jù)成員數(shù)據(jù)成員語法格式[修飾符]數(shù)據(jù)類型
數(shù)據(jù)成員列表;static修飾符static修飾的數(shù)據(jù)成員不屬于任何一個類的具體對象,而是屬于類的靜態(tài)數(shù)據(jù)成員。3.2數(shù)據(jù)成員靜態(tài)數(shù)據(jù)成員特點存放在類定義的公共存儲空間,不保存在某個對象內(nèi)存中可使用類名和點運算符組合訪問:類名.靜態(tài)數(shù)據(jù)成員屬于類的作用域范圍,可結(jié)合訪問權(quán)限修飾符使用publicstatic靜態(tài)數(shù)據(jù)成員初始化2種方式由用戶在定義時進(jìn)行靜態(tài)初始化器來完成靜態(tài)數(shù)據(jù)成員初始化操作3.2數(shù)據(jù)成員靜態(tài)初始化器語法格式static{ 靜態(tài)數(shù)據(jù)成員;}靜態(tài)數(shù)據(jù)成員初始化器使用原則對類的靜態(tài)數(shù)據(jù)成員初始化,不能初始化其它成員;靜態(tài)初始化器不是方法,沒有方法名、返回值和參數(shù)列表;必須由系統(tǒng)自動調(diào)用,執(zhí)行加載到類定義的內(nèi)存空間。3.2數(shù)據(jù)成員final修飾符final修飾符修飾的數(shù)據(jù)成員被限定為最終數(shù)據(jù)成員。3.2數(shù)據(jù)成員使用原則聲明常量的數(shù)據(jù)類型,且給出常量的具體值如果一個類有多個對象,且某個數(shù)據(jù)成員是常量時,聲明使用staticfinal兩個修飾符來描述該數(shù)據(jù)成員,可節(jié)省內(nèi)存空間。標(biāo)識符常量成員方法描述事物的動態(tài)特征,具有相對獨立功能的程序塊。一個類可定義一個或多個成員方法,類的對象通過使用成員方法完成特定的功能。3.3成員方法成員方法使用的4種形式方法語句方法表達(dá)式方法作為參數(shù)對象引用[修飾符]返回值類型
成員方法名(形參列表)[throw異常列表]{ 執(zhí)行邏輯語句塊;}3.3成員方法成員方法語法格式static修飾符static修飾的成員方法不屬于任何一個類的具體對象,而是屬于類的靜態(tài)成員方法。靜態(tài)成員方法特點屬于類的方法,而非靜態(tài)成員方法只能在類的對象創(chuàng)建可用類名和類的對象名作為點運算符的前綴調(diào)用靜態(tài)成員方法只能使用靜態(tài)數(shù)據(jù)成員,不能使用非靜態(tài)數(shù)據(jù)成員;而非靜態(tài)成員方法可同時使用靜態(tài)數(shù)據(jù)成員以及靜態(tài)數(shù)據(jù)成員靜態(tài)成員方法只能調(diào)用靜態(tài)成員方法,不能調(diào)用非靜態(tài)成員方法。而非靜態(tài)成員方法可同時調(diào)用非靜態(tài)成員方法以及靜態(tài)成員方法靜態(tài)成員方法不可被覆蓋3.3成員方法final修飾符final修飾的成員方法為最終方法。類的子類不能定義與最終方法同名的方法,僅可繼承使用。3.3成員方法成員方法的引用方式被引用的成員方法在同一個程序文件中,且在當(dāng)前類中定義,直接引用;被引用的成員方法在同一個程序文件中,但不在當(dāng)前類中定義,則需由類修飾符和方法修飾符共同決定是否能夠引用;被引用的成員方法不在同一個程序文件中,但屬于Java類庫的方法,則必須在程序文件中使用import語句引用相關(guān)類庫的包到當(dāng)前程序文件中;被引用的成員方法不在同一個程序文件中,但屬于其他程序文件中用戶自定義的方法,則必須在程序文件中使用import語句用戶包到當(dāng)前程序文件中。3.3成員方法必須使用import引入創(chuàng)建對象通常包括聲明對象、建立對象和初始化對象。聲明對象
確定對象名稱,并指明該對象所屬的類。類名
對象名表class_nameobject_one,object_two;4.1創(chuàng)建對象建立對象
用new關(guān)鍵字為對象分配存儲空間。對象名=
new
構(gòu)造方法();object_one=newclass_name();也可以在聲明對象的同時建立對象,稱為創(chuàng)建一個對象。類名
對象名=new構(gòu)造方法();class_nameobject_one=newclass_name();4.1創(chuàng)建對象初始化對象由一個類創(chuàng)建一個對象時,為這個對象確定初始狀態(tài),即為它的數(shù)據(jù)成員賦初始值的過程。初始化對象的3種方式使用默認(rèn)值初始化使用賦值語句賦初值使用構(gòu)造方法完成賦初值4.1創(chuàng)建對象數(shù)據(jù)類型默認(rèn)初值數(shù)據(jù)類型默認(rèn)初值byte0float0.0fshort0double0.0dint0booleanFALSElong0引用類型nullchar\u0000’4.1創(chuàng)建對象封裝(信息隱藏)一個對象數(shù)據(jù)成員和成員方法緊密地結(jié)合成一個整體,且限定該對象的數(shù)據(jù)成員只能由對象關(guān)聯(lián)的引用變量或?qū)ο蟮某蓡T方法來讀取和修改。4.2使用對象數(shù)據(jù)成員引用方式:對象名.數(shù)據(jù)成員名成員方法引用方式:對象名.成員方法名(參數(shù)表)一旦對象不再被使用時,應(yīng)當(dāng)及時銷毀,節(jié)省內(nèi)存空間,防止程序出現(xiàn)內(nèi)存溢出問題。Java提供自動內(nèi)存垃圾回收機(jī)制,由垃圾回收器收集不再使用的對象內(nèi)存空間后自動釋放4.3銷毀對象Java系統(tǒng)能夠識別兩種形式的對象“內(nèi)存垃圾”對象引用超出其作用域范圍,該對象視為“內(nèi)存垃圾“用戶顯示地將對象賦值為null建立對象之后,需要為每個對象的數(shù)據(jù)成員賦初始值,Java提供構(gòu)造方法來完成。構(gòu)造方法是類特殊的方法,用于初始化類的實例變量。5構(gòu)造方法構(gòu)造方法語法格式5構(gòu)造方法[public]方法名(形式參數(shù)列表){
數(shù)據(jù)成員=形式參數(shù);}構(gòu)造方法中數(shù)據(jù)成員與形參的區(qū)分默認(rèn)情況下,構(gòu)造方法體賦值號左側(cè)為類數(shù)據(jù)成員,右側(cè)為形式參數(shù)。使用this關(guān)鍵字,顯示地指明數(shù)據(jù)成員。構(gòu)造方法的特點5構(gòu)造方法構(gòu)造方法的方法名與類名相同,是屬于類的方法;構(gòu)造方法只能與new運算符結(jié)合使用,不能由用戶顯示地調(diào)用,由Java系統(tǒng)自動調(diào)用構(gòu)造方法完成初始化操作;用戶自定義構(gòu)造方法時,不能指定構(gòu)造方法的返回值數(shù)據(jù)類型,由Java系統(tǒng)生成隱含的返回值;用戶自定義類時,如果沒有定義構(gòu)造方法,由Java系統(tǒng)自動定義一個默認(rèn)的空構(gòu)造方法。空構(gòu)造方法沒有形參和執(zhí)行語句,不能完成任何操作;構(gòu)造方法可被重載和繼承。有關(guān)重載和繼承的內(nèi)容請參閱本書第5章。在Java中,為了防止類、接口等命名沖突問題的發(fā)生,定義的類依據(jù)功能不同劃分不同的集合,每個集合稱為一個包。包的概念本質(zhì)上是命名空間(namespace),在包中定義一組相關(guān)的類,并提供訪問保護(hù)和命名空間管理。所有包的集合組成類庫。6包Java系統(tǒng)類庫Java類庫提供Java程序與運行它的系統(tǒng)軟件(Java虛擬機(jī))之間的接口。Java的類庫是系統(tǒng)提供標(biāo)準(zhǔn)類的集合,是Java編程的API,幫助開發(fā)者方便、快捷地開發(fā)Java程序。Java類庫由Sun公司編寫完成,也稱為基礎(chǔ)類庫(JFC),也有少量類庫是由第三方軟件開發(fā)商以商品的形式提供。6包使用系統(tǒng)類庫的3種方式直接使用系統(tǒng)類繼承系統(tǒng)類創(chuàng)建系統(tǒng)類的對象使用系統(tǒng)類前提條件系統(tǒng)類應(yīng)是用戶程序可見的類。需要用import語句引入它所用到的系統(tǒng)類或系統(tǒng)類所在的包。6包自定義包使用關(guān)鍵字package定義包。6.1包的定義package語句的語法格式如下:packagepkg1[.pkg2[.pkg3…]]注意:自定義包名是開發(fā)者所屬公司域名倒置。如果在源文件中沒有定義包,該源文件將被放進(jìn)一個無名的包中,也稱為默認(rèn)包。使用package規(guī)則package語句必須放在Java源程序文件的第一行;在每個源
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江汽車職業(yè)技術(shù)學(xué)院《影視后期設(shè)計與制作》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州科技職業(yè)技術(shù)大學(xué)《運營管理模擬》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆江蘇省徐州市睢寧高中南校高三2月月考試卷物理試題含解析
- 陜西鐵路工程職業(yè)技術(shù)學(xué)院《醫(yī)學(xué)生物學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 古代教育理念對當(dāng)代的啟示
- 公建項目物業(yè)招標(biāo)流程及標(biāo)準(zhǔn)
- 澳門廢氣處理施工方案
- 2024年三季度報湖南地區(qū)A股應(yīng)收賬款周轉(zhuǎn)率排名前十大上市公司
- 遼寧省遼陽市2024-2025學(xué)年高三(上)期末生物試卷(含解析)
- 河北省保定市2024-2025學(xué)年高一上學(xué)期1月期末英語試題(B)【含答案】
- 醫(yī)療器械委托生產(chǎn)管理規(guī)程
- 不同類型學(xué)生因材施教管理策略研究方案
- 初中美術(shù)6-9年級第一學(xué)期藝術(shù)測評期末試題
- 首都師范大學(xué)輔導(dǎo)員考試題庫
- 2023年云南省中考數(shù)學(xué)試卷及解析
- 小學(xué)心理健康教育《第十三課父母的小幫手》
- (通橋【2018】8370)《鐵路橋梁快速更換型伸縮縫安裝圖》
- 新生兒窒息復(fù)蘇演練腳本
- ESD靜電防護(hù)管理規(guī)范及測量標(biāo)準(zhǔn)
- 安全警示標(biāo)志現(xiàn)場檢查表
- 2023屆山東煙臺高三一模作文“柴火不足水減一半”導(dǎo)寫及范文四篇
評論
0/150
提交評論