




已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2010 1 10 1 Java面向?qū)ο蟪绦蛟O(shè)計(jì) 第4章 配合例子源代碼一起使用 Powerpoint制作 耿祥義張躍平 類與對象 2010 1 10 2 主要內(nèi)容類對象參數(shù)傳值對象組合static關(guān)鍵字this關(guān)鍵字包import語句jar文件難點(diǎn)參數(shù)傳值與對象組合包和import語句 導(dǎo)讀 2010 1 10 3 4 1編程語言的幾個(gè)發(fā)展階段 面向機(jī)器語言 面向過程語言 面向?qū)ο笳Z言面向?qū)ο缶幊讨饕w現(xiàn)下列三個(gè)特性 封裝性 繼承 多態(tài) 2010 1 10 4 4 2類 類是組成Java程序的基本要素 類封裝了一類對象的狀態(tài)和方法 類是用來定義對象的模板 類的實(shí)現(xiàn)包括兩部分 類聲明和類體 基本格式為 class類名 類體的內(nèi)容 2010 1 10 5 4 2 1類聲明 類聲明 class類名如 classPeople 和 class動(dòng)物 稱作類聲明 People 和 動(dòng)物 分別是類名 給類命名時(shí) 遵守下列編程風(fēng)格 這不是語法要求的 但應(yīng)當(dāng)遵守 1 如果類名使用拉丁字母 那么名字的首字母使用大寫字母 如 2 類名最好容易識別 見名知意 當(dāng)類名由幾個(gè) 單詞 復(fù)合而成時(shí) 每個(gè)單詞的首字母使用大寫 2010 1 10 6 4 2 2類體 類聲明之后的一對大括號 以及它們之間的內(nèi)容稱作類體 大括號之間的內(nèi)容稱作類體的內(nèi)容 類體的內(nèi)容由兩部分構(gòu) 一部分是變量的聲明 用來刻畫屬性 另一部分是方法的定義 用來刻畫功能 2010 1 10 7 4 2 3成員變量和局部變量 類體中變量聲明部分所聲明的變量被稱作類的成員變量 在方法體中聲明的變量和方法的參數(shù)被稱作局部變量 1 變量的類型 成員變量和局部變量的類型可以是Java中的任何一種數(shù)據(jù)類型 包括基本類型 整型 浮點(diǎn)型 字符型 引用類型 數(shù)組 對象和接口 對象和接口見后續(xù)內(nèi)容 2 變量的有效范圍 成員變量在整個(gè)類內(nèi)都有效 局部變量只在聲明它的方法內(nèi)有效 方法參數(shù)在整個(gè)方法內(nèi)有效 方法內(nèi)的局部變量從聲明它的位置之后開始有效 3 實(shí)例變量與類變量 在聲明成員變量時(shí) 用關(guān)鍵字static給予修飾的稱作類變量 否則稱作實(shí)例變量 類變量也稱為static變量 靜態(tài)變量 4 成員變量的隱藏 如果局部變量的名字與成員變量的名字相同 則成員變量被隱藏 即這個(gè)成員變量在這個(gè)方法內(nèi)暫時(shí)失效 5 編程風(fēng)格 1 一行只聲明一個(gè)變量 2 變量的名字符合標(biāo)識符規(guī)定 3 變量名字見名知意 避免容易混淆的變量名字 2010 1 10 8 4 2 4方法 方法的定義包括兩部分 方法聲明和方法體 一般格式為 方法聲明部分 方法體的內(nèi)容 1 方法聲明方法聲明包括方法名和方法的返回類型 如 floatarea 注 方法的返回類型 方法的參數(shù) 方法的名字2 方法體方法聲明之后的一對大括號 以及之間的內(nèi)容稱作方法的方法體 方法體的內(nèi)容包括局部變量的聲明和Java語句 2010 1 10 9 4 2 5方法重載 方法重載的意思是 一個(gè)類中可以有多個(gè)方法具有相同的名字 但這些方法的參數(shù)必須不同 即或者是參數(shù)的個(gè)數(shù)不同 或者是參數(shù)的類型不同 2010 1 10 10 4 2 6構(gòu)造方法 構(gòu)造方法是一種特殊方法 它的名字必須與它所在的類的名字完全相同 而且沒有類型 構(gòu)造方法也可以重載 2010 1 10 11 4 2 7類方法和實(shí)例方法 方法聲明時(shí) 方法類型前面不加關(guān)鍵字static修飾的是實(shí)例方法 加static修飾的是類方法 靜態(tài)方法 2010 1 10 12 4 2 8幾個(gè)值得注意的問題 1 對成員變量的操作只能放在方法中 方法可以對成員變量和該方法體中聲明的局部變量進(jìn)行操作 2 需要注意的是 實(shí)例方法既能對類變量操作也能對實(shí)例變量操作 而類方法只能對類變量進(jìn)行操作 3 一個(gè)類中的方法可以互相調(diào)用 實(shí)例方法可以調(diào)用該類中的其它方法 類中的類方法只能調(diào)用該類的類方法 不能調(diào)用實(shí)例方法 2010 1 10 13 4 3對象 4 3 1創(chuàng)建對象 1 對象的聲明PeoplezhangPing 2 為聲明的對象分配內(nèi)存zhangPing newPeople 例4 1 例4 23 對象的內(nèi)存模型 1 聲明對象時(shí)的內(nèi)存模型 2 對象分配內(nèi)存后的內(nèi)存模型4 創(chuàng)建多個(gè)不同的對象 2010 1 10 14 4 3 2使用對象 1 通過使用運(yùn)算符 對象操作自己的變量 對象的屬性 2 使用運(yùn)算符 對象調(diào)用類中的方法 對象的功能 例4 3 2010 1 10 15 4 3 3對象的引用和實(shí)體 當(dāng)用類創(chuàng)建一個(gè)對象時(shí) 類中的成員變量在分配內(nèi)存空間 這些內(nèi)存空間稱作該對象的實(shí)體或?qū)ο蟮淖兞?而對象中存放著引用 一個(gè)類創(chuàng)建的兩個(gè)對象 如果具有相同的引用 那么就具有完全相同的實(shí)體 2010 1 10 16 4 4參數(shù)傳值 4 4 1基本數(shù)據(jù)類型參數(shù)的傳值 對于基本數(shù)據(jù)類型的參數(shù) 向該參數(shù)傳遞的值的級別不可以高于該參數(shù)的級別 例4 4 2010 1 10 17 4 4 2引用類型參數(shù)的傳值 當(dāng)參數(shù)是引用類型時(shí) 傳值 傳遞的是變量中存放的 引用 而不是變量所引用的實(shí)體 例4 5 2010 1 10 18 4 4 3可變參數(shù) 可變參數(shù)是指在聲明方法時(shí)不給出參數(shù)列表中從某項(xiàng)直至最后一項(xiàng)參數(shù)的名字和個(gè)數(shù) 但這些參數(shù)的類型必須相同 可變參數(shù)使用 表示若干個(gè)參數(shù) 這些參數(shù)的類型必須相同 最后一個(gè)參數(shù)必須是參數(shù)列表中的最后一個(gè)參數(shù) 例如 publicvoidf int x 例4 6 2010 1 10 19 4 4 4有理數(shù)的類封裝 面向?qū)ο缶幊毯诵乃枷胫痪褪菍?shù)據(jù)和對數(shù)據(jù)的操作封裝在一起 1 Rational 有理數(shù) 類2 用Rational對象做運(yùn)算Rational javaMainClass java 2010 1 10 20 4 5對象的組合 一個(gè)類可以把對象作為自己的成員變量 如果用這樣的類創(chuàng)建對象 那么該對象中就會(huì)有其它對象 也就是說該對象將其他對象作為自己的組成部分 或者說該對象是由幾個(gè)對象組合而成 例4 7 2010 1 10 21 4 6static關(guān)鍵字 2010 1 10 22 4 6 1實(shí)例變量和類變量的區(qū)別 如果類中有類變量 那么所有對象的這個(gè)類變量都分配給相同的一處內(nèi)存 改變其中一個(gè)對象的這個(gè)類變量會(huì)影響其它對象的這個(gè)類變量 也就是說對象共享類變量 例4 8 2010 1 10 23 4 6 2實(shí)例方法和類方法的區(qū)別 當(dāng)用類創(chuàng)建對象后 類中的實(shí)例方法才分配入口地址 從而實(shí)例方法可以被類創(chuàng)建的任何對象調(diào)用執(zhí)行 對于類中的類方法 在該類被加載到內(nèi)存時(shí) 就分配了相應(yīng)的入口地址 例4 9 2010 1 10 24 4 7this關(guān)鍵字 this是Java的一個(gè)關(guān)鍵字 表示某個(gè)對象 this可以出現(xiàn)在實(shí)例方法和構(gòu)造方法中 但不可以出現(xiàn)在類方法中 2010 1 10 25 4 7 1在構(gòu)造方法中使用this this關(guān)鍵字出現(xiàn)在類的構(gòu)造方法中時(shí) 代表使用該構(gòu)造方法所創(chuàng)建的對象 例4 10 2010 1 10 26 4 7 2在實(shí)例方法中使用this 當(dāng)this關(guān)鍵字出現(xiàn)實(shí)例方法中時(shí) 代表正在調(diào)用該方法的當(dāng)前對象 當(dāng)實(shí)例成員變量在實(shí)例方法中出現(xiàn)時(shí) 默認(rèn)的格式是 this 成員變量 當(dāng)static成員變量在實(shí)例方法中出現(xiàn)時(shí) 默認(rèn)的格式是 類名 成員變量 2010 1 10 27 4 8包 包是Java語言中有效地管理類的一個(gè)機(jī)制 包名的目的是有效的區(qū)分名字相同的類 2010 1 10 28 4 8 1包語句 通過關(guān)鍵字package聲明包語句 package語句作為Java源文件的第一條語句 為該源文件中聲明的類指定包名 package語句的一般格式為 package包名 2010 1 10 29 4 8 2有包名的類的存儲(chǔ)目錄 程序如果使用了包語句 例如 packagetom jiafei 那么存儲(chǔ)文件的目錄結(jié)構(gòu)中必須包含有如下的結(jié)構(gòu) tom jiafei如 c 1000 tom jiafei并且要將源文件編譯得到的類的字節(jié)碼文件保存在目錄c 1000 tom jiafei中 源文件可以任意存放 2010 1 10 30 4 8 3運(yùn)行有包名的主類 如果主類的包名是tom jiafei 那么主類的字節(jié)碼一定存放在 tom jiefei目錄中 運(yùn)行時(shí)必須到tom jiefei的上一層 即tom的父目錄 目錄中去運(yùn)行主類 假設(shè)tom jiefei的上一層目錄是1000 那么 必須如下格式來運(yùn)行 C 1000 javatom jiafei 主類名注 主類名是 包名 主類名 例4 11 2010 1 10 31 4 9import語句 一個(gè)類可能需要另一個(gè)類聲明的對象作為自己的成員或方法中的局部變量 如果這兩個(gè)類在同一個(gè)包中 當(dāng)然沒有問題 如果一個(gè)類想要使用的那個(gè)類和它不在一個(gè)包中 要使用import語句完成使命 2010 1 10 32 4 9 1引入類庫中的類 如果用戶需要類庫中的類就必須使用import語句 如 importjava until Date 例4 12 2010 1 10 33 4 9 2引入自定義包中的類 用戶程序可以使用tom jiafei包中的類 即使用非類庫中有包名的類 也要使用import語句 如 importtom jiafei 例4 13 例4 14 2010 1 10 34 4 9 3使用無包名的類 如果一個(gè)類想使用無名包中的類 只要將這個(gè)無包名的類的字節(jié)碼和當(dāng)前類保存在同一目錄中即可 例4 15 2010 1 10 35 4 9 4避免類名混淆 1 區(qū)分無包名和有包名的類如果想同時(shí)使用tom jiafei包中的A類和無名包中的A類 就不能省略包名 例如 Aa1 newA tom jiafei Aa2 newtom jiafei A 2 區(qū)分有包名的類如果一個(gè)源文件引入了兩個(gè)包中同名的類 那么在使用該類時(shí) 不允許省略包名 比如 tom jiafei Abird newtom jiafei A Agoat A 2010 1 10 36 4 10訪問權(quán)限 訪問限制修飾符有private protected和public 都是Java的關(guān)鍵字 用來修飾成員變量或方法 2010 1 10 37 4 10 1私有變量和私有方法 用關(guān)鍵字private修飾的成員變量和方法稱為私有變量和私有方法 對于私有成員變量或方法 只有在本類中創(chuàng)建該類的對象時(shí) 這個(gè)對象才能訪問自己的私有成員變量和類中的私有方法 例4 16 例4 17 2010 1 10 38 4 10 2共有變量和共有方法 用public修飾的成員變量和方法被稱為共有變量和共有方法 我們在任何一個(gè)類中用類Tom創(chuàng)建了一個(gè)對象后 該對象能訪問自己的public變量和類中的public方法 也可以通過類名來操作成員變量 方法 2010 1 10 39 4 10 3友好變量和友好方法 當(dāng)在另外一個(gè)類中用類Tom創(chuàng)建了一個(gè)對象后 如果這個(gè)類與Tom類在同一個(gè)包中 那么該對象能訪問自己的友好變量和友好方法 在任何一個(gè)與Tom同一包中的類中 也可以通過Tom類的類名訪問Tom類的類友好成員變量和類友好方法 2010 1 10 40 4 10 4受保護(hù)的成員變量和方法 用protected修飾的成員變量和方法被稱為受保護(hù)的成員變量和受保護(hù)的方法 2010 1 10 41 4 10 5public類與友好類 類聲明時(shí) 如果在關(guān)鍵字class前面加上public關(guān)鍵字 就稱這樣的類是一個(gè)public類 可以在任何另外一個(gè)類中 使用public類創(chuàng)建對象 如果一個(gè)類不加public修飾 這樣的類被稱作友好類 在另外一個(gè)類中使用友好類創(chuàng)建對象時(shí) 要保證它們是在同一包中 2010 1 10 42 4 11基本類型的類包裝 Java的基本數(shù)據(jù)類型包括 byte int short long float double char Java提供了基本數(shù)據(jù)類型相關(guān)的類 實(shí)現(xiàn)了對基本數(shù)據(jù)類型的封裝 這些類分別是 Byte Integer Short Long Float Double和Character類 這些類在java lang包中 2010 1 10 43 4 11 1Double和Float類 Double類和Float類實(shí)現(xiàn)了對double和float基本型數(shù)據(jù)的類包裝 Double類的構(gòu)造方法 Double doublenum Float類的構(gòu)造方法 Float floatnum Double對象調(diào)用doubleValue 方法可以返回該對象含有的double型數(shù)據(jù) Float對象調(diào)用floatValue 方法可以返回該對象含有的float型數(shù)據(jù) 2010 1 10 44 4 11 2Byte Short Integer Long類 上述個(gè)類的構(gòu)造方法分別 Byte bytenum Short shortnum Integer intnum Long longnum Byte Short Integer和Long對象分別調(diào)用byteValue shortValue intValue 和longValue 方法返回該對象含有的基本型數(shù)據(jù) 2010 1 10 45 4 11 3Character類 Character類實(shí)現(xiàn)了對char基本型數(shù)據(jù)的類包裝 Character類的構(gòu)造方法 Character charc Character類中的一些常用類方法 publicstaticbooleanisDigit charch 如果ch是數(shù)字字符方法返回true 否則返回false publicstaticbooleanisLetter charch 如果ch是字母方法返回true 否則返回false publicstaticbooleanisLetterOrDigit charch 如果ch是數(shù)字字符或字母方法返回true 否則返回false publicstaticbooleanisLowerCase charch 如果ch是小寫字母方法返回true 否則返回false publicstaticbooleanisUpperCase charch 如果ch是大寫字母方法返回true 否則返回false publicstaticchartoLowerCase charch 返回ch的小寫形式 publicstaticchartoUpperCase charch 返回ch的大寫形式 publicstaticbooleanisSpaceChar charch 如果ch是空格返回true 例4 18 2010 1 10 46 4 11 4自動(dòng)裝箱與拆箱 所謂自動(dòng)裝箱就是允許把一個(gè)基本數(shù)據(jù)類型的值直接賦值給基本數(shù)據(jù)類型相對應(yīng)的類的實(shí)例 例如 Integernumber 100 自動(dòng)拆箱就是允許把基本數(shù)據(jù)類型相對應(yīng)的類的實(shí)例直接賦值給相應(yīng)的基本數(shù)據(jù)類型變量或把基本數(shù)據(jù)類型相對應(yīng)的類的實(shí)例當(dāng)作相應(yīng)的基本數(shù)據(jù)類型來使用 例如 number是一個(gè)Integer對象 那么允許 intx number number 例4 19 2010 1 10 47 4 12反編譯和文檔生成器 4 12 1javap反編譯 JDK提供的反編譯器javap exe可以將字節(jié)碼反編譯為源碼 查看源碼類中的public方法名字和public成員變量的名字 例如 javapjava util Date 2010 1 10 48 4 12 2javadoc制作文檔 使用JDK提供的javadoc exe可以制做源文件的html格式文檔 假設(shè)D test有源文件Example java 用javadocExample java生成Example java的html格式文擋 例4 20 2010 1 10 49 4 13jar文件 我們可以使用jar exe命令把一些類的字節(jié)碼文件壓縮成一個(gè)jar文件 然后將這個(gè)jar文件存放到Java運(yùn)行環(huán)境的擴(kuò)展中 即將該jar文件存放在JDK安裝目錄的jre lib ext文件夾中 這樣 Java應(yīng)用程序就可以使用這個(gè)jar文件中的類來創(chuàng)建對象了 1 有包名的類 TestOne和TestTwo類的包名為moon star 首先編寫一個(gè)清單文件 hello mf Manifestfiles 保存到C 1000目錄中Manif
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能門禁系統(tǒng)安裝合同
- 教師職稱評定育人工作證明
- Tricyclohexylphosphine-Tricyclohexylphosphane-生命科學(xué)試劑-MCE
- 影視劇制作投資拍攝協(xié)議
- Actein-Standard-生命科學(xué)試劑-MCE
- 寓言故事愚公移山的教育意義深度解讀
- 美容美發(fā)產(chǎn)品使用效果免責(zé)承諾書
- 水電站落水孔清洗施工方案
- 蘇州玻璃鋼化糞池施工方案
- 2025年滁州c1貨運(yùn)上崗證模擬考試
- 心力衰竭業(yè)務(wù)學(xué)習(xí)護(hù)理課件
- 《汽車發(fā)電機(jī)》課件
- 青少年網(wǎng)絡(luò)安全教育課件
- 2021年全國統(tǒng)一高考英語試卷(新課標(biāo)Ⅰ)(原卷版)
- 中藥熱奄包在消化系統(tǒng)疾病中的應(yīng)用探討
- 春節(jié)的起源歷史-古代歷法與新歲之首的關(guān)聯(lián)活動(dòng)方案
- 耳鼻喉培訓(xùn)學(xué)習(xí)課件
- 中醫(yī)護(hù)理中藥封包課件
- 2024年中智集團(tuán)及下屬單位招聘筆試參考題庫含答案解析
- 《項(xiàng)脊軒志》公開課課件【一等獎(jiǎng)】
- 小兒急乳蛾(小兒急性扁桃體炎)中醫(yī)臨床路徑(2018年版)
評論
0/150
提交評論