Java語(yǔ)言與網(wǎng)絡(luò)編程PPT1第4章-類(lèi)與對(duì)象_第1頁(yè)
Java語(yǔ)言與網(wǎng)絡(luò)編程PPT1第4章-類(lèi)與對(duì)象_第2頁(yè)
Java語(yǔ)言與網(wǎng)絡(luò)編程PPT1第4章-類(lèi)與對(duì)象_第3頁(yè)
Java語(yǔ)言與網(wǎng)絡(luò)編程PPT1第4章-類(lèi)與對(duì)象_第4頁(yè)
Java語(yǔ)言與網(wǎng)絡(luò)編程PPT1第4章-類(lèi)與對(duì)象_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

面向?qū)ο蟪绦蛟O(shè)計(jì)概述抽象原則類(lèi)對(duì)象構(gòu)造方法包本章內(nèi)容面向過(guò)程的程序設(shè)計(jì)程序=算法+數(shù)據(jù)結(jié)構(gòu)1面向?qū)ο蟪绦蛟O(shè)計(jì)概述缺點(diǎn)數(shù)據(jù)和操作是兩個(gè)獨(dú)立單元編寫(xiě)算法需考慮問(wèn)題域的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)改變,算法也需修改面向?qū)ο蟮某绦蛟O(shè)計(jì)程序=對(duì)象+消息1面向?qū)ο蟪绦蛟O(shè)計(jì)概述優(yōu)點(diǎn)數(shù)據(jù)和操作是一個(gè)整體對(duì)象對(duì)用戶公開(kāi)特定的功能,隱藏實(shí)現(xiàn)過(guò)程客觀世界由有形的、無(wú)形的事物構(gòu)成的,程序設(shè)計(jì)的問(wèn)題域。1面向?qū)ο蟪绦蛟O(shè)計(jì)概述類(lèi)抽象、歸納出對(duì)象的共同性。對(duì)象描述客觀世界的基本單位。面向?qū)ο蟮奶匦苑庋b性外部訪問(wèn)者不能隨意存取對(duì)象的內(nèi)部數(shù)據(jù),只保留對(duì)外接口。1面向?qū)ο蟪绦蛟O(shè)計(jì)概述繼承性對(duì)象的類(lèi)之間層次關(guān)系,子類(lèi)可繼承父類(lèi)的屬性和操作。多態(tài)性父類(lèi)的成員被繼承后,具有不同的狀態(tài)和行為。抽象概念從被研究對(duì)象中舍棄個(gè)別的、非本質(zhì)的、或與研究主旨無(wú)關(guān)的次要特征,抽取與研究工作有關(guān)的實(shí)質(zhì)性內(nèi)容加以考察,形成對(duì)所研究問(wèn)題正確的、簡(jiǎn)明扼要的認(rèn)識(shí)。2抽象原則抽象原則過(guò)程抽象數(shù)據(jù)抽象過(guò)程抽象任何一個(gè)完成確定功能的執(zhí)行序列。面向過(guò)程程序設(shè)計(jì)采用的是過(guò)程抽象。將一個(gè)復(fù)雜問(wèn)題分解為多個(gè)子問(wèn)題,以此類(lèi)推,形成層次結(jié)構(gòu)。2.1過(guò)程抽象過(guò)程抽象的弊端過(guò)程抽象的缺點(diǎn)是只關(guān)注操作本身沒(méi)有考慮把操作和數(shù)據(jù)作為一個(gè)整體看待數(shù)據(jù)抽象把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作結(jié)合成一個(gè)不可分的系統(tǒng)單位。根據(jù)功能、性質(zhì)和作用等因素,抽象成不同的抽象數(shù)據(jù)類(lèi)型。2.2數(shù)據(jù)抽象數(shù)據(jù)抽象的優(yōu)勢(shì)用戶無(wú)需了解實(shí)現(xiàn)細(xì)節(jié)僅提供數(shù)據(jù)的接口而屏蔽實(shí)現(xiàn),保持接口不變,不影響用戶使用接口規(guī)定用戶與數(shù)據(jù)之間交互,避免對(duì)數(shù)據(jù)的非法操作程序設(shè)計(jì)所面對(duì)的問(wèn)題域-客觀世界??陀^世界的每個(gè)事物都具有自己的靜態(tài)特征、動(dòng)態(tài)特征。把客觀世界事實(shí)映射到面向?qū)ο蟮某绦蛟O(shè)計(jì),將事物抽象成為對(duì)象。2.3對(duì)象對(duì)象動(dòng)態(tài)特征(行為)靜態(tài)特征(屬性)對(duì)象特征對(duì)象標(biāo)識(shí):即對(duì)象的名字,是用戶和系統(tǒng)識(shí)別它的唯一標(biāo)志。外部標(biāo)識(shí)供對(duì)象的定義者或使用者使用。內(nèi)部標(biāo)識(shí)供系統(tǒng)內(nèi)部唯一地識(shí)別每一個(gè)對(duì)象。屬性:即一組數(shù)據(jù),用來(lái)描述對(duì)象的靜態(tài)特征。方法:也稱為服務(wù)或操作,每一個(gè)方法確定對(duì)象的一種行為或功能。2.3對(duì)象抽象與當(dāng)前目標(biāo)有關(guān)的本質(zhì)特征,找出事物共性,把具有共性事物歸為一類(lèi),得出抽象概念—類(lèi)。在面向?qū)ο蟮木幊陶Z(yǔ)言中,類(lèi)是一個(gè)獨(dú)立的程序單位,是具有相同屬性和方法的一組對(duì)象的集合。類(lèi)的概念能對(duì)屬于該類(lèi)的全部對(duì)象進(jìn)行統(tǒng)一的描述。2.4類(lèi)類(lèi)是創(chuàng)建對(duì)象的模板(template),對(duì)象是類(lèi)的實(shí)例(instance)。任何一個(gè)對(duì)象都是隸屬于某個(gè)類(lèi)的。對(duì)象:小明屬性:小明男0001方法:學(xué)習(xí)鍛煉類(lèi):學(xué)生屬性:姓名性別學(xué)號(hào)方法:學(xué)習(xí)鍛煉數(shù)據(jù)結(jié)構(gòu)方法名抽象實(shí)例化2.5類(lèi)與對(duì)象的關(guān)系在定義對(duì)象之前應(yīng)先定義類(lèi)描述一個(gè)類(lèi),需要指明下述三個(gè)方面內(nèi)容類(lèi)標(biāo)識(shí):類(lèi)的一個(gè)有別于其他類(lèi)的名字屬性說(shuō)明:用來(lái)描述相同對(duì)象的靜態(tài)特征方法說(shuō)明:用來(lái)描述相同對(duì)象的動(dòng)態(tài)特征3類(lèi)的定義用戶自定義類(lèi)程序需要針對(duì)特定問(wèn)題的特定邏輯來(lái)定義自己的類(lèi)。用戶按照J(rèn)ava的語(yǔ)法規(guī)則,把所研究的問(wèn)題描述成Java程序中的類(lèi),以解決特定問(wèn)題。3類(lèi)的定義自定義類(lèi)語(yǔ)法格式[類(lèi)修飾符]class

類(lèi)名[extends父類(lèi)][implements接口列表]3類(lèi)的定義{}

數(shù)據(jù)成員;

成員方法;定義一個(gè)簡(jiǎn)單的Student類(lèi)class

Student{StringstudenName;intstudentNumber;

voidhardLearn(){……}}類(lèi)的方法(動(dòng)態(tài)特征)類(lèi)的屬性(靜態(tài)特征)3類(lèi)的定義類(lèi)修飾符用于規(guī)定類(lèi)的一些特殊性,主要用于對(duì)類(lèi)的訪問(wèn)限制。3.1類(lèi)修飾符類(lèi)修飾符說(shuō)明無(wú)修飾符包中訪問(wèn)特性public公共類(lèi),包中類(lèi)以及其它包中的類(lèi)使用final最終類(lèi),不可被繼承abstract抽象類(lèi),不可派生子類(lèi)無(wú)修飾符類(lèi)只能被同一個(gè)包中的類(lèi)使用,也稱為“包訪問(wèn)”特性。3.1類(lèi)修飾符Java規(guī)定同一個(gè)程序文件中所有類(lèi)都在同一個(gè)包中。無(wú)修飾符類(lèi)注意事項(xiàng)可被同一個(gè)程序文件中的類(lèi)使用不能被其它程序文件中的類(lèi)使用public修飾符公共類(lèi)既可提供給包中的所有類(lèi)使用,也可提供給其他包中的類(lèi)使用。3.1類(lèi)修飾符Java規(guī)定在同一個(gè)程序文件中,只能定義一個(gè)公共類(lèi);程序中其它類(lèi)既可是無(wú)修飾符類(lèi),也可是final修飾最終類(lèi)。public修飾符類(lèi)注意事項(xiàng)跨包調(diào)用,必須使用import語(yǔ)句引入公共類(lèi)final修飾符最終類(lèi)不可被任何其它類(lèi)所繼承。3.1類(lèi)修飾符final類(lèi)優(yōu)勢(shì)在完成某種標(biāo)準(zhǔn)功能。提高程序的可讀性。提高安全性。abstract修飾符抽象類(lèi)刻畫(huà)出研究對(duì)象的共有行為特征,并通過(guò)繼承機(jī)制將特征派生給子類(lèi)。3.1類(lèi)修飾符abstract類(lèi)優(yōu)勢(shì)將許多有關(guān)的類(lèi)組織在一起,提供一個(gè)公共的基類(lèi)。數(shù)據(jù)抽象原則的體現(xiàn)數(shù)據(jù)成員描述事物的靜態(tài)特征。聲明一個(gè)數(shù)據(jù)成員需要指明數(shù)據(jù)成員的標(biāo)識(shí)符,及其所屬的數(shù)據(jù)類(lèi)型。3.2數(shù)據(jù)成員數(shù)據(jù)成員語(yǔ)法格式[修飾符]數(shù)據(jù)類(lèi)型

數(shù)據(jù)成員列表;static修飾符static修飾的數(shù)據(jù)成員不屬于任何一個(gè)類(lèi)的具體對(duì)象,而是屬于類(lèi)的靜態(tài)數(shù)據(jù)成員。3.2數(shù)據(jù)成員靜態(tài)數(shù)據(jù)成員特點(diǎn)存放在類(lèi)定義的公共存儲(chǔ)空間,不保存在某個(gè)對(duì)象內(nèi)存中可使用類(lèi)名和點(diǎn)運(yùn)算符組合訪問(wèn):類(lèi)名.靜態(tài)數(shù)據(jù)成員屬于類(lèi)的作用域范圍,可結(jié)合訪問(wèn)權(quán)限修飾符使用publicstatic靜態(tài)數(shù)據(jù)成員初始化2種方式由用戶在定義時(shí)進(jìn)行靜態(tài)初始化器來(lái)完成靜態(tài)數(shù)據(jù)成員初始化操作3.2數(shù)據(jù)成員靜態(tài)初始化器語(yǔ)法格式static{ 靜態(tài)數(shù)據(jù)成員;}靜態(tài)數(shù)據(jù)成員初始化器使用原則對(duì)類(lèi)的靜態(tài)數(shù)據(jù)成員初始化,不能初始化其它成員;靜態(tài)初始化器不是方法,沒(méi)有方法名、返回值和參數(shù)列表;必須由系統(tǒng)自動(dòng)調(diào)用,執(zhí)行加載到類(lèi)定義的內(nèi)存空間。3.2數(shù)據(jù)成員final修飾符final修飾符修飾的數(shù)據(jù)成員被限定為最終數(shù)據(jù)成員。3.2數(shù)據(jù)成員使用原則聲明常量的數(shù)據(jù)類(lèi)型,且給出常量的具體值如果一個(gè)類(lèi)有多個(gè)對(duì)象,且某個(gè)數(shù)據(jù)成員是常量時(shí),聲明使用staticfinal兩個(gè)修飾符來(lái)描述該數(shù)據(jù)成員,可節(jié)省內(nèi)存空間。標(biāo)識(shí)符常量成員方法描述事物的動(dòng)態(tài)特征,具有相對(duì)獨(dú)立功能的程序塊。一個(gè)類(lèi)可定義一個(gè)或多個(gè)成員方法,類(lèi)的對(duì)象通過(guò)使用成員方法完成特定的功能。3.3成員方法成員方法使用的4種形式方法語(yǔ)句方法表達(dá)式方法作為參數(shù)對(duì)象引用[修飾符]返回值類(lèi)型

成員方法名(形參列表)[throw異常列表]{ 執(zhí)行邏輯語(yǔ)句塊;}3.3成員方法成員方法語(yǔ)法格式static修飾符static修飾的成員方法不屬于任何一個(gè)類(lèi)的具體對(duì)象,而是屬于類(lèi)的靜態(tài)成員方法。靜態(tài)成員方法特點(diǎn)屬于類(lèi)的方法,而非靜態(tài)成員方法只能在類(lèi)的對(duì)象創(chuàng)建可用類(lèi)名和類(lèi)的對(duì)象名作為點(diǎn)運(yùn)算符的前綴調(diào)用靜態(tài)成員方法只能使用靜態(tài)數(shù)據(jù)成員,不能使用非靜態(tài)數(shù)據(jù)成員;而非靜態(tài)成員方法可同時(shí)使用靜態(tài)數(shù)據(jù)成員以及靜態(tài)數(shù)據(jù)成員靜態(tài)成員方法只能調(diào)用靜態(tài)成員方法,不能調(diào)用非靜態(tài)成員方法。而非靜態(tài)成員方法可同時(shí)調(diào)用非靜態(tài)成員方法以及靜態(tài)成員方法靜態(tài)成員方法不可被覆蓋3.3成員方法final修飾符final修飾的成員方法為最終方法。類(lèi)的子類(lèi)不能定義與最終方法同名的方法,僅可繼承使用。3.3成員方法成員方法的引用方式被引用的成員方法在同一個(gè)程序文件中,且在當(dāng)前類(lèi)中定義,直接引用;被引用的成員方法在同一個(gè)程序文件中,但不在當(dāng)前類(lèi)中定義,則需由類(lèi)修飾符和方法修飾符共同決定是否能夠引用;被引用的成員方法不在同一個(gè)程序文件中,但屬于Java類(lèi)庫(kù)的方法,則必須在程序文件中使用import語(yǔ)句引用相關(guān)類(lèi)庫(kù)的包到當(dāng)前程序文件中;被引用的成員方法不在同一個(gè)程序文件中,但屬于其他程序文件中用戶自定義的方法,則必須在程序文件中使用import語(yǔ)句用戶包到當(dāng)前程序文件中。3.3成員方法必須使用import引入創(chuàng)建對(duì)象通常包括聲明對(duì)象、建立對(duì)象和初始化對(duì)象。聲明對(duì)象

確定對(duì)象名稱,并指明該對(duì)象所屬的類(lèi)。類(lèi)名

對(duì)象名表class_nameobject_one,object_two;4.1創(chuàng)建對(duì)象建立對(duì)象

用new關(guān)鍵字為對(duì)象分配存儲(chǔ)空間。對(duì)象名=

new

構(gòu)造方法();object_one=newclass_name();也可以在聲明對(duì)象的同時(shí)建立對(duì)象,稱為創(chuàng)建一個(gè)對(duì)象。類(lèi)名

對(duì)象名=new構(gòu)造方法();class_nameobject_one=newclass_name();4.1創(chuàng)建對(duì)象初始化對(duì)象由一個(gè)類(lèi)創(chuàng)建一個(gè)對(duì)象時(shí),為這個(gè)對(duì)象確定初始狀態(tài),即為它的數(shù)據(jù)成員賦初始值的過(guò)程。初始化對(duì)象的3種方式使用默認(rèn)值初始化使用賦值語(yǔ)句賦初值使用構(gòu)造方法完成賦初值4.1創(chuàng)建對(duì)象數(shù)據(jù)類(lèi)型默認(rèn)初值數(shù)據(jù)類(lèi)型默認(rèn)初值byte0float0.0fshort0double0.0dint0booleanFALSElong0引用類(lèi)型nullchar\u0000’4.1創(chuàng)建對(duì)象封裝(信息隱藏)一個(gè)對(duì)象數(shù)據(jù)成員和成員方法緊密地結(jié)合成一個(gè)整體,且限定該對(duì)象的數(shù)據(jù)成員只能由對(duì)象關(guān)聯(lián)的引用變量或?qū)ο蟮某蓡T方法來(lái)讀取和修改。4.2使用對(duì)象數(shù)據(jù)成員引用方式:對(duì)象名.數(shù)據(jù)成員名成員方法引用方式:對(duì)象名.成員方法名(參數(shù)表)一旦對(duì)象不再被使用時(shí),應(yīng)當(dāng)及時(shí)銷(xiāo)毀,節(jié)省內(nèi)存空間,防止程序出現(xiàn)內(nèi)存溢出問(wèn)題。Java提供自動(dòng)內(nèi)存垃圾回收機(jī)制,由垃圾回收器收集不再使用的對(duì)象內(nèi)存空間后自動(dòng)釋放4.3銷(xiāo)毀對(duì)象Java系統(tǒng)能夠識(shí)別兩種形式的對(duì)象“內(nèi)存垃圾”對(duì)象引用超出其作用域范圍,該對(duì)象視為“內(nèi)存垃圾“用戶顯示地將對(duì)象賦值為null建立對(duì)象之后,需要為每個(gè)對(duì)象的數(shù)據(jù)成員賦初始值,Java提供構(gòu)造方法來(lái)完成。構(gòu)造方法是類(lèi)特殊的方法,用于初始化類(lèi)的實(shí)例變量。5構(gòu)造方法構(gòu)造方法語(yǔ)法格式5構(gòu)造方法[public]方法名(形式參數(shù)列表){

數(shù)據(jù)成員=形式參數(shù);}構(gòu)造方法中數(shù)據(jù)成員與形參的區(qū)分默認(rèn)情況下,構(gòu)造方法體賦值號(hào)左側(cè)為類(lèi)數(shù)據(jù)成員,右側(cè)為形式參數(shù)。使用this關(guān)鍵字,顯示地指明數(shù)據(jù)成員。構(gòu)造方法的特點(diǎn)5構(gòu)造方法構(gòu)造方法的方法名與類(lèi)名相同,是屬于類(lèi)的方法;構(gòu)造方法只能與new運(yùn)算符結(jié)合使用,不能由用戶顯示地調(diào)用,由Java系統(tǒng)自動(dòng)調(diào)用構(gòu)造方法完成初始化操作;用戶自定義構(gòu)造方法時(shí),不能指定構(gòu)造方法的返回值數(shù)據(jù)類(lèi)型,由Java系統(tǒng)生成隱含的返回值;用戶自定義類(lèi)時(shí),如果沒(méi)有定義構(gòu)造方法,由Java系統(tǒng)自動(dòng)定義一個(gè)默認(rèn)的空構(gòu)造方法。空構(gòu)造方法沒(méi)有形參和執(zhí)行語(yǔ)句,不能完成任何操作;構(gòu)造方法可被重載和繼承。有關(guān)重載和繼承的內(nèi)容請(qǐng)參閱本書(shū)第5章。在Java中,為了防止類(lèi)、接口等命名沖突問(wèn)題的發(fā)生,定義的類(lèi)依據(jù)功能不同劃分不同的集合,每個(gè)集合稱為一個(gè)包。包的概念本質(zhì)上是命名空間(namespace),在包中定義一組相關(guān)的類(lèi),并提供訪問(wèn)保護(hù)和命名空間管理。所有包的集合組成類(lèi)庫(kù)。6包Java系統(tǒng)類(lèi)庫(kù)Java類(lèi)庫(kù)提供Java程序與運(yùn)行它的系統(tǒng)軟件(Java虛擬機(jī))之間的接口。Java的類(lèi)庫(kù)是系統(tǒng)提供標(biāo)準(zhǔn)類(lèi)的集合,是Java編程的API,幫助開(kāi)發(fā)者方便、快捷地開(kāi)發(fā)Java程序。Java類(lèi)庫(kù)由Sun公司編寫(xiě)完成,也稱為基礎(chǔ)類(lèi)庫(kù)(JFC),也有少量類(lèi)庫(kù)是由第三方軟件開(kāi)發(fā)商以商品的形式提供。6包使用系統(tǒng)類(lèi)庫(kù)的3種方式直接使用系統(tǒng)類(lèi)繼承系統(tǒng)類(lèi)創(chuàng)建系統(tǒng)類(lèi)的對(duì)象使用系統(tǒng)類(lèi)前提條件系統(tǒng)類(lèi)應(yīng)是用戶程序可見(jiàn)的類(lèi)。需要用import語(yǔ)句引入它所用到的系統(tǒng)類(lèi)或系統(tǒng)類(lèi)所在的包。6包自定義包使用關(guān)鍵字package定義包。6.1包的定義package語(yǔ)句的語(yǔ)法格式如下:packagepkg1[.pkg2[.pkg3…]]注意:自定義包名是開(kāi)發(fā)者所屬公司域名倒置。如果在源文件中沒(méi)有定義包,該源文件將被放進(jìn)一個(gè)無(wú)名的包中,也稱為默認(rèn)包。使用package規(guī)則package語(yǔ)句必須放在Java源程序文件的第一行;在每個(gè)源

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論