




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
類和對象〔下〕類構造器構造方法是一個特殊的方法。Java中的每個類都有構造方法,用來初始化該類的一個對象。構造方法具有和類名相同的名稱,而且不返回任何數(shù)據類型。重載經常用于構造方法。每個類都至少有一個構造器,如果沒有定義構造器,那么系統(tǒng)將自動提供一個默認的不帶任何參數(shù)的構造器默認構造方法如果已經定義了一個構造器〔無論是否有參數(shù)〕,編譯程序都不會幫我們自動合成一個。構造方法只能由new運算符調用構造器是一個特殊的方法:沒有返回類型創(chuàng)立對象時自動調用不能顯式的調用可以重載,但不會被子類繼承作用是初始化數(shù)據1/8/20242類和對象〔下〕對象的創(chuàng)立和使用對象的創(chuàng)立包括聲明、實例化和初始化。聲明,創(chuàng)立類的對象引用 CarObjectmyCar1; CarObjectmyCar2; 這個變量沒有定義一個對象。實際上,它只是一個能夠引用對象的簡單變量
1/8/20243類和對象〔下〕對象的創(chuàng)立和使用運算符new為對象分配內存空間,初始化類變量,調用對象的構造方法,返回對象引用myCar1=newCarObject()myCar2=newCarObject(2,2,185);也可以將聲明和創(chuàng)立對象合起來寫CarObjectmyCar3=newCarObject();1/8/20244類和對象〔下〕對象的創(chuàng)立和使用1/8/20245類和對象〔下〕對象的引用思考A: 假設執(zhí)行:CarObjectmyCar1=newCarObject(); CarObjectmyCar2=myCar1;思考B: 假設執(zhí)行:CarObjectmyCar1=newCarObject(); myCar1=newCarObject();
后的對象狀態(tài)及其引用1/8/20246類和對象〔下〕對象的創(chuàng)立和使用在創(chuàng)立而未初始化類變量時,類變量具有默認值 數(shù)據類型 默認值 數(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類和對象〔下〕對象的去除當不存在對一個對象的引用時,該對象成為一個無用對象。Java的垃圾收集器自動掃描對象的動態(tài)內存區(qū),把沒有引用的對象作為垃圾收集起來并釋放。
System.gc();
當系統(tǒng)內存用盡或調用System.gc()要求垃圾回收時,垃圾回收線程與系統(tǒng)同步運行。1/8/202410類和對象〔下〕this關鍵字在每個類實例中都有一個隱含的this變量,this變量可以訪問所有的類信息:包括類變量和類方法 如:this.對象成員使用this關鍵字可以顯式的限定所引用的變量,不必另外設計命名約定來區(qū)分參數(shù)和類變量
publicvoidsetTopSpeed(inttopSpeed){
if(topSpeed>0){
this.topSpeed=topSpeed;
}
} this也可以在一個構造方法中調用該類的另一個構造方法this()this(s1,n1)this也可以作為一個方法的參數(shù),super但是不能1/8/202411類和對象〔下〕匿名〔初始化〕語句塊publicclassCar{{(“init〞);speed=10;}privateintspeed;privateStringcarType;publicCar(){}}任何一個構造方法都會首先調用該匿名(初始化)語句塊.1/8/202412類和對象〔下〕final實例字段實例字段可以聲明為final,在對象構造時,必須被初始化,且不能被修改。一般把那種在生命周期不會發(fā)生改變的字段標記為final
如汽車的出廠編號
privatefinalintserialNumber;1/8/202413類和對象〔下〕靜態(tài)類成員static 有時你希望定義一個類成員,使它的使用完全獨立于該類的任何對象。通常情況下,類成員必須通過它的類的對象訪問,但是可以創(chuàng)立這樣一個成員,就不必引用特定的實例了。在成員的聲明前面加上關鍵字static(靜態(tài)的)就能創(chuàng)立這樣的成員。如果一個成員被聲明為static,它就能夠在它的類的任何對象創(chuàng)立之前被訪問,而不必引用任何對象。static可以修飾變量與方法,還有內部類等用static修飾的變量與方法稱為類變量/類方法類變量/類方法無需創(chuàng)立對象就可以調用,調用方法是:類名.類變量/類方法1/8/202414類和對象〔下〕靜態(tài)類變量聲明為static的變量實質上就是全局變量。當聲明一個對象時,并不產生static變量的拷貝,而是該類所有的實例變量共用同一個static變量。如汽車的總數(shù)
privatestaticintnumber;
1/8/202415類和對象〔下〕靜態(tài)方法聲明為static的方法有以下幾條限制:1、它們僅能調用其他的static方法。2、它們只能訪問static數(shù)據。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)常量很普遍,實質上就是公共全局常量如:
publicclassMath { ... ... }可以直接通過類名.常量名訪問如:
Math.PI1/8/202419類和對象〔下〕public關鍵字public類class可以由public來修飾,也可以沒有修飾符號//Car只能被當前包內的類訪問classCar{}//Car1可以被其他包內的類訪問publicclassCar1{}一個java源文件內只能有一個public修飾的類,并且該java文件和該類同名,可以有多個非public修飾的類如果一個java源文件中沒有public修飾類,那么該java文件可以按照文件系統(tǒng)任意命名,不受該文件內類名的約束1/8/202420類和對象〔下〕java包分割系統(tǒng)包package包的命名原那么導入import與include環(huán)境變量1/8/202421類和對象〔下〕掌握重點理解面向對象的思想、封裝性類的結構、定義構造器的作用理解對象的引用實現(xiàn)封裝的手段this的用法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城鄉(xiāng)結合部出租房屋合同定金范本
- 房產交易三方合同托管實施細則
- 保密條款合同模板:代理合作中的商業(yè)與技術秘密
- 廣告撲克牌批量生產合同
- 貸款擔保合同協(xié)議
- 河南標準個人借款合同樣本規(guī)范
- 度商業(yè)合同范本:經濟適用房交易
- 股權轉讓合同范本(標準文本)
- 采購供應合同書其二
- 與營銷策略的區(qū)別與應用考核試卷
- 2025年江蘇南京技師學院招聘工作人員19人高頻重點模擬試卷提升(共500題附帶答案詳解)
- 華東師大版七年級數(shù)學下冊“第1周周考”
- DBJ50-T-385-2023半柔性復合路面技術標準
- 職業(yè)院校教師人工智能素養(yǎng):內涵流變、框架構建與生成路徑
- 中國地方政府融資平臺行業(yè)市場深度分析及投資前景展望報告
- 如何在初中數(shù)學教學中提升學生的核心素養(yǎng)
- 2025年湘教版二年級美術下冊計劃與教案
- GB/T 4706.30-2024家用和類似用途電器的安全第30部分:廚房機械的特殊要求
- 2024年岳陽職業(yè)技術學院單招職業(yè)技能測試題庫及答案解析
- 消防安全管理制度完整版完整版
- 20馬工程教材《公共財政概論》-第一章-公課件
評論
0/150
提交評論