版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2021/3/101 第四章第四章 類類 和和 對對 象象 2021/3/102 教學(xué)目標(biāo)教學(xué)目標(biāo) n理解數(shù)據(jù)抽象和數(shù)據(jù)隱藏 n創(chuàng)建類 n能夠創(chuàng)建和使用對象 n能夠控制對實(shí)例變量和方法的訪問 n方法的重載 n構(gòu)造函數(shù)的使用 n理解this引用的用法 n理解Java的垃圾收集機(jī)制 nstatic方法和域的使用 n類的組合 n包的創(chuàng)建和使用 2021/3/103 4.1 面向?qū)ο蟪绦蛟O(shè)計的思想面向?qū)ο蟪绦蛟O(shè)計的思想 n4.1.1 OOP思想 n4.1.2 用類實(shí)現(xiàn)抽象數(shù)據(jù)類型:時鐘類 n4.1.3 類成員:構(gòu)造函數(shù)、方法和域 2021/3/104 4.1.1 OOP思想思想 n面向?qū)ο缶幊碳夹g(shù) n
2、將數(shù)據(jù)及對數(shù)據(jù)的操作封裝在一起而形成了類,類是描述 相同類型的對象集合。 。面向?qū)ο缶幊蹋╫bject- oriented programming,OOP)就是定義這些類。 n類作為抽象的數(shù)據(jù)類型用于創(chuàng)建類的對象。 n程序的執(zhí)行,表現(xiàn)為一組對象之間的交互通信。對象之間 通過公共接口進(jìn)行通信,從而完成系統(tǒng)功能。對象的公共 接口是該對象的應(yīng)用程序編程接口(Application Programming Interface,API),把對象的內(nèi)部詳細(xì)信息 隱藏起來,使得對象變得抽象,將這種技術(shù)稱為數(shù)據(jù)的抽 象化。 nJava語言是完全面向?qū)ο蟮恼Z言,程序的結(jié)構(gòu)由一個以上的 類組成。所有的過程都被封裝
3、起來,并將它們稱之為方法。 2021/3/105 4.1.2 用類實(shí)現(xiàn)抽象數(shù)據(jù)類型:時鐘類用類實(shí)現(xiàn)抽象數(shù)據(jù)類型:時鐘類 n類作為一種抽象的數(shù)據(jù)類型,封裝了對象的數(shù)據(jù) 屬性和動態(tài)行為,被用來定義類的對象。 n下面我們將通過一個具體的實(shí)例來理解什么是類,如何定 義類、創(chuàng)建對象和使用對象。 n時鐘類的設(shè)計: (1) 數(shù)據(jù)屬性: 時(int hour); 分 (int minute); 秒(int second)。 (2) 行為: 設(shè)置時間 setTime() ; 顯示時間 toUniversalString() 、 toStandardString() ; 走時 (暫時不考慮); 2021/3/10
4、6 4.1.2 用類實(shí)現(xiàn)抽象數(shù)據(jù)類型:時鐘類(續(xù))用類實(shí)現(xiàn)抽象數(shù)據(jù)類型:時鐘類(續(xù)) 例4-1 時鐘類的實(shí)現(xiàn)。 該例子包含兩個文件Time1.java和TimeTest1.java。 n Time1.java是用于定義時鐘類。 n TimeTest1類是一個用于測試時鐘類的包含main方法的主類, 在main方法中將創(chuàng)建Time1類的一個對象,并調(diào)用對象的公 共方法。 2021/3/107 4.1.2 用類實(shí)現(xiàn)抽象數(shù)據(jù)類型:時鐘類(續(xù))用類實(shí)現(xiàn)抽象數(shù)據(jù)類型:時鐘類(續(xù)) Time1.java文件的代碼如下: import java.text.DecimalFormat; public clas
5、s Time1 extends Object private int hour; private int minute; private int second; public Time1() setTime( 0, 0, 0 ); public void setTime( int h, int m, int s ) hour = ( ( h = 0 時 分 秒 設(shè)置時間 2021/3/108 4.1.2 用類實(shí)現(xiàn)抽象數(shù)據(jù)類型:時鐘類(續(xù))用類實(shí)現(xiàn)抽象數(shù)據(jù)類型:時鐘類(續(xù)) public String toUniversalString() /toUniversalString方法以24時制格式
6、顯示時間 DecimalFormat twoDigits = new DecimalFormat( 00 ); return twoDigits.format( hour ) + : + twoDigits.format( minute ) + : + twoDigits.format( second ); public String toStandardString() /toStandardString方法以12時制格式顯示時間 DecimalFormat twoDigits = new DecimalFormat( 00 ); return ( (hour = 12 | hour = 0
7、) ? 12 : hour % 12 ) + : + twoDigits.format( minute ) + : + twoDigits.format( second ) + ( hour = 0 帶有一個參數(shù)的setTime方法 帶有兩個參數(shù)的setTime方法 帶有三個參數(shù)的setTime方法 2021/3/1027 4.5 初始化類的對象:構(gòu)造函數(shù)初始化類的對象:構(gòu)造函數(shù) n構(gòu)造方法用于為類的新建的對象分配內(nèi)存 空間和進(jìn)行初始化,如例4-1在Time1類中創(chuàng) 建了一個構(gòu)造函數(shù)(不帶任何參數(shù))。在構(gòu) 造函數(shù)中對三個成員變量進(jìn)行了初始化。構(gòu) 造函數(shù)只能在創(chuàng)建對象時用new命令調(diào)用。 定義必
8、須構(gòu)造函數(shù)時,注意兩點(diǎn): 構(gòu)造方法必須與其類名相同;構(gòu)造方法必須與其類名相同; 構(gòu)造方法沒有返回值,但可以有參數(shù),構(gòu)造方法沒有返回值,但可以有參數(shù), 并且可以重載。并且可以重載。 2021/3/1028 4.5 初始化類的對象:構(gòu)造函數(shù)(續(xù))初始化類的對象:構(gòu)造函數(shù)(續(xù)) 例4-5舉例說明構(gòu)造函數(shù)的重載。 Time4.java文件的部分代碼: /5個重載的構(gòu)造函數(shù) public Time4() setTime( 0, 0, 0 ); public Time4( int h ) setTime( h, 0, 0 ); public Time4( int h, int m ) setTime( h
9、, m, 0 ); public Time4( int h, int m, int s ) setTime( h, m, s ); public Time4( Time4 time ) setTime( time.hour, time.minute, time.second ); 不帶參數(shù)的構(gòu)造函數(shù) 帶一個參數(shù)的構(gòu)造函數(shù) 帶兩個參數(shù)的構(gòu)造函數(shù) 帶三個參數(shù)的構(gòu)造函數(shù) 帶一個參數(shù)為對象的構(gòu)造函數(shù) 2021/3/1029 4.6 this nthis定義為被調(diào)用的方法的當(dāng)前對象的引用。this引 用僅能出現(xiàn)在類中的方法中。 n例4-6 this的使用 例子說明如何隱式地和顯式地使用this引用。 例
10、子中SimpleTime類的構(gòu)造方法的三個參數(shù)名與 SimpleTime類三個成員變量名相同。在這種情況下, 局部變量在該方法作用域中屏蔽了同名的域。我們可 以使用this來顯式地引用屏蔽的域。通過this不但可以 引用成員變量,也可通過this引用方法,包括構(gòu)造函數(shù)。 本例子中通過this引用方法。 2021/3/1030 4.7 垃圾收集垃圾收集 nJava平臺允許創(chuàng)建任意個對象(當(dāng)然會受到系統(tǒng)資 源的限制),而且當(dāng)對象不再使用時自動會被清除, 這個過程就是所謂的“垃圾收集”。當(dāng)對象不再被引 用的時候,對象就會被作為垃圾收集的對象而清除。 為了使對象不再被引用,可以通過設(shè)置執(zhí)行指向某一 對
11、象的引用為null。例如: Time1 time=new Time1(); Time=null; 1垃圾收集器垃圾收集器 2撤銷方法撤銷方法finalize 2021/3/1031 4.8 static方法和域方法和域 n當(dāng)聲明一個成員變量時,可以指定成員變量是屬 于一個類的所有對象共享static (稱為類的變量), 還是屬于一個類的各個對象所擁有( 稱為實(shí)例變量, 是類的實(shí)例擁有)。類的變量又稱為靜態(tài)成員,以 關(guān)鍵字static聲明。 例如: static int count; 類的靜態(tài)成員的使用格式一般為: 類名.靜態(tài)變量名; 類名.靜態(tài)方法名(); n例4-7 靜態(tài)方法和域的應(yīng)用 20
12、21/3/1032 4.9 類的組合類的組合 n一個類中的成員可以是其他類的引用,這 叫類的組合。 n例4-8 類的組合 2021/3/1033 4.10 包的創(chuàng)建和訪問包的創(chuàng)建和訪問 n4.10.1 包的創(chuàng)建 n4.10.2 包的使用 2021/3/1034 4.10.1 包的創(chuàng)建包的創(chuàng)建 n 建立一個包時,使用package語句。package語句 必須是整個java文件的第一個語句。創(chuàng)建package語 句格式: package 包名; n例如: 將在當(dāng)前目錄下創(chuàng)建一個包,包名為 .sytu.it.ch04,Time1放在此包中。 package .sytu.it
13、.ch04; public class Time1 2021/3/1035 4.10.2 包的使用包的使用 nimport語句用于導(dǎo)入用戶的源代碼文件中使用的其他包中的 類,這些類和當(dāng)前類不在同一個包中。 例如: import .sytu.it.ch04.Time1; nimport .sytu.it.ch04.*; *表示導(dǎo)入整個包,即導(dǎo)入整個子包.sytu.it.ch04中的 所有類,但不包括.sytu.it.ch04中子包。 n如果沒有使用import語句導(dǎo)入某個包,但又想使用它的某個 類,也可以直接在所需要的類名前加上包名前綴。前綴。 例如,要使用類Time1類創(chuàng)建一個對象time,語句如下: .sytu.it.ch04.Time1 time; 例4-9 包的創(chuàng)建及使用 2021/3/1036 小結(jié)小結(jié) n本章介紹了面向?qū)ο蟪绦蛟O(shè)計的重要概念類和對 象。類是一種抽象的數(shù)據(jù)類型,用來表示具有相同性 質(zhì)的一類事物。類封
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版智能家居安防系統(tǒng)試用合同3篇
- 二零二五版辦公家具租賃與辦公空間智能化改造合同2篇
- 二零二五年度國際商務(wù)考察合同范本3篇
- 二零二五年度金融機(jī)構(gòu)貸款合同風(fēng)險評估與管理指南3篇
- 二零二五年度某零售商與第三方支付平臺就支付服務(wù)合作合同2篇
- 敬老院二零二五年度土地承包及社區(qū)服務(wù)一體化合同3篇
- 二零二五年船舶通信設(shè)備維護(hù)船員聘用合同3篇
- 二零二五年智慧交通項目合作開發(fā)合同范本3篇
- 二零二五年度搬家搬運(yùn)服務(wù)合同范本2篇
- 二零二五版導(dǎo)游人員旅游活動組織聘用合同3篇
- 深圳2024-2025學(xué)年度四年級第一學(xué)期期末數(shù)學(xué)試題
- 中考語文復(fù)習(xí)說話要得體
- 《工商業(yè)儲能柜技術(shù)規(guī)范》
- 華中師范大學(xué)教育技術(shù)學(xué)碩士研究生培養(yǎng)方案
- 醫(yī)院醫(yī)學(xué)倫理委員會章程
- 初中班主任案例分析4篇
- 公司7s管理組織實(shí)施方案
- Q∕GDW 12147-2021 電網(wǎng)智能業(yè)務(wù)終端接入規(guī)范
- 仁愛英語單詞默寫本(全六冊)英譯漢
- 公園廣場綠地文化設(shè)施維修改造工程施工部署及進(jìn)度計劃
- 塑料件缺陷匯總
評論
0/150
提交評論