版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
類和對象〔下〕類構(gòu)造器構(gòu)造方法是一個特殊的方法。Java中的每個類都有構(gòu)造方法,用來初始化該類的一個對象。構(gòu)造方法具有和類名相同的名稱,而且不返回任何數(shù)據(jù)類型。重載經(jīng)常用于構(gòu)造方法。每個類都至少有一個構(gòu)造器,如果沒有定義構(gòu)造器,那么系統(tǒng)將自動提供一個默認(rèn)的不帶任何參數(shù)的構(gòu)造器默認(rèn)構(gòu)造方法如果已經(jīng)定義了一個構(gòu)造器〔無論是否有參數(shù)〕,編譯程序都不會幫我們自動合成一個。構(gòu)造方法只能由new運算符調(diào)用構(gòu)造器是一個特殊的方法:沒有返回類型創(chuàng)立對象時自動調(diào)用不能顯式的調(diào)用可以重載,但不會被子類繼承作用是初始化數(shù)據(jù)1/8/20242類和對象〔下〕對象的創(chuàng)立和使用對象的創(chuàng)立包括聲明、實例化和初始化。聲明,創(chuàng)立類的對象引用 CarObjectmyCar1; CarObjectmyCar2; 這個變量沒有定義一個對象。實際上,它只是一個能夠引用對象的簡單變量
1/8/20243類和對象〔下〕對象的創(chuàng)立和使用運算符new為對象分配內(nèi)存空間,初始化類變量,調(diào)用對象的構(gòu)造方法,返回對象引用myCar1=newCarObject()myCar2=newCarObject(2,2,185);也可以將聲明和創(chuàng)立對象合起來寫CarObjectmyCar3=newCarObject();1/8/20244類和對象〔下〕對象的創(chuàng)立和使用1/8/20245類和對象〔下〕對象的引用思考A: 假設(shè)執(zhí)行:CarObjectmyCar1=newCarObject(); CarObjectmyCar2=myCar1;思考B: 假設(shè)執(zhí)行:CarObjectmyCar1=newCarObject(); myCar1=newCarObject();
后的對象狀態(tài)及其引用1/8/20246類和對象〔下〕對象的創(chuàng)立和使用在創(chuàng)立而未初始化類變量時,類變量具有默認(rèn)值 數(shù)據(jù)類型 默認(rèn)值 數(shù)值型 0 布爾型 false 字符型 0 對象 null1/8/20247類和對象〔下〕對象的創(chuàng)立和使用 使用“對象名.對象成員〞的方式訪問對象成員〔包括屬性和方法〕;
myCar1.turnOn(); myCar1.accelerate(); System.out.println("CurrentSpeed:"+car.getCurrentSpeed());1/8/20248類和對象〔下〕對象的創(chuàng)立和使用
publicclassCarTest3{ publicstaticvoidmain(String[]args){ //Definetheattributesofthecar CarObjectcar=newCarObject(CarObject.V10,CarObject.CONVERTIBLE,185); //Dosomethingswiththecar car.turnOn(); for(inti=0;i<10;i++){ car.accelerate(); System.out.println("CurrentSpeed:"+car.getCurrentSpeed()); } ……. car.turnOff(); } }1/8/20249類和對象〔下〕對象的去除當(dāng)不存在對一個對象的引用時,該對象成為一個無用對象。Java的垃圾收集器自動掃描對象的動態(tài)內(nèi)存區(qū),把沒有引用的對象作為垃圾收集起來并釋放。
System.gc();
當(dāng)系統(tǒng)內(nèi)存用盡或調(diào)用System.gc()要求垃圾回收時,垃圾回收線程與系統(tǒng)同步運行。1/8/202410類和對象〔下〕this關(guān)鍵字在每個類實例中都有一個隱含的this變量,this變量可以訪問所有的類信息:包括類變量和類方法 如:this.對象成員使用this關(guān)鍵字可以顯式的限定所引用的變量,不必另外設(shè)計命名約定來區(qū)分參數(shù)和類變量
publicvoidsetTopSpeed(inttopSpeed){
if(topSpeed>0){
this.topSpeed=topSpeed;
}
} this也可以在一個構(gòu)造方法中調(diào)用該類的另一個構(gòu)造方法this()this(s1,n1)this也可以作為一個方法的參數(shù),super但是不能1/8/202411類和對象〔下〕匿名〔初始化〕語句塊publicclassCar{{(“init〞);speed=10;}privateintspeed;privateStringcarType;publicCar(){}}任何一個構(gòu)造方法都會首先調(diào)用該匿名(初始化)語句塊.1/8/202412類和對象〔下〕final實例字段實例字段可以聲明為final,在對象構(gòu)造時,必須被初始化,且不能被修改。一般把那種在生命周期不會發(fā)生改變的字段標(biāo)記為final
如汽車的出廠編號
privatefinalintserialNumber;1/8/202413類和對象〔下〕靜態(tài)類成員static 有時你希望定義一個類成員,使它的使用完全獨立于該類的任何對象。通常情況下,類成員必須通過它的類的對象訪問,但是可以創(chuàng)立這樣一個成員,就不必引用特定的實例了。在成員的聲明前面加上關(guān)鍵字static(靜態(tài)的)就能創(chuàng)立這樣的成員。如果一個成員被聲明為static,它就能夠在它的類的任何對象創(chuàng)立之前被訪問,而不必引用任何對象。static可以修飾變量與方法,還有內(nèi)部類等用static修飾的變量與方法稱為類變量/類方法類變量/類方法無需創(chuàng)立對象就可以調(diào)用,調(diào)用方法是:類名.類變量/類方法1/8/202414類和對象〔下〕靜態(tài)類變量聲明為static的變量實質(zhì)上就是全局變量。當(dāng)聲明一個對象時,并不產(chǎn)生static變量的拷貝,而是該類所有的實例變量共用同一個static變量。如汽車的總數(shù)
privatestaticintnumber;
1/8/202415類和對象〔下〕靜態(tài)方法聲明為static的方法有以下幾條限制:1、它們僅能調(diào)用其他的static方法。2、它們只能訪問static數(shù)據(jù)。3、它們不能以任何方式引用this或super思考:哪些情況可以使用static方法一個方法不需要訪問對象狀態(tài),其所需參數(shù)通過參數(shù)傳入一個方法只需要訪問類的靜態(tài)域或著靜態(tài)方法
1/8/202416類和對象〔下〕靜態(tài)塊在類的定義體中、方法的外部可包含static語句塊static語句塊僅在其所屬的類被載入時執(zhí)行一次static塊通常用于初始化化static(類)屬性
1/8/202417類和對象〔下〕靜態(tài)初始化publicclassCarObject{ privatestaticintnumber; …… static{ number=0; } ……}特例:publicclassSsTest{ static{ System.out.println("thisisSsTeststaticblock"); } publicstaticvoidmain(String[]args){ }}1/8/202418類和對象〔下〕靜態(tài)常量靜態(tài)變量并不常見,靜態(tài)常量很普遍,實質(zhì)上就是公共全局常量如:
publicclassMath { ... ... }可以直接通過類名.常量名訪問如:
Math.PI1/8/202419類和對象〔下〕public關(guān)鍵字public類class可以由public來修飾,也可以沒有修飾符號//Car只能被當(dāng)前包內(nèi)的類訪問classCar{}//Car1可以被其他包內(nèi)的類訪問publicclassCar1{}一個java源文件內(nèi)只能有一個public修飾的類,并且該java文件和該類同名,可以有多個非public修飾的類如果一個java源文件中沒有public修飾類,那么該java文件可以按照文件系統(tǒng)任意命名,不受該文件內(nèi)類名的約束1/8/202420類和對象〔下〕java包分割系統(tǒng)包package包的命名原那么導(dǎo)入import與include環(huán)境變量1/8/202421類和對象〔下〕掌握重點理解面向?qū)ο蟮乃枷?、封裝性類的結(jié)構(gòu)、定義構(gòu)造器的作用理解對象的引用實現(xiàn)封裝的手段this的用法
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州財經(jīng)職業(yè)學(xué)院《大學(xué)英語跨文化交際》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年上海市建筑安全員-B證(項目經(jīng)理)考試題庫
- 2025重慶建筑安全員-C證考試題庫
- 貴陽信息科技學(xué)院《證券投資學(xué)實驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年浙江建筑安全員《C證》考試題庫及答案
- 廣州幼兒師范高等專科學(xué)?!渡锛夹g(shù)綜合性實驗?zāi)K》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025廣東省安全員-A證考試題庫附答案
- 廣州新華學(xué)院《影視導(dǎo)演實訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年天津建筑安全員考試題庫
- 2025年四川省安全員知識題庫附答案
- 應(yīng)收帳款管理辦法
- 跨境代運營合同范例
- 水利水電工程驗收實施細(xì)則模版(3篇)
- 四川雅安文化旅游集團有限責(zé)任公司招聘筆試沖刺題2024
- 2024-2025學(xué)年 語文二年級上冊 部編版期末測試卷 (含答案)
- 山西省晉中市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
- DB34T4912-2024二手新能源汽車鑒定評估規(guī)范
- 江蘇省丹陽市丹陽高級中學(xué)2025屆物理高一第一學(xué)期期末統(tǒng)考試題含解析
- 中華護(hù)理學(xué)會團體標(biāo)準(zhǔn)-氣管切開非機械通氣患者氣道護(hù)理
- 2023年海南公務(wù)員考試申論試題(A卷)
- DB3502Z 5034-2018 廈門市保障性住房建設(shè)技術(shù)導(dǎo)則
評論
0/150
提交評論