freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

javaee基礎(chǔ)教程第4章 類與對(duì)象的基本概念ppt-文庫(kù)吧

2024-10-03 14:25 本頁(yè)面


【正文】 +s+. )。 } } Java EE基礎(chǔ)教程 21 2021年 11月 10日星期三 public class OverLoadingDemo{ public static void main (String[] args){ Father x=new Father()。 ()。 //調(diào)用無(wú)參的 speak()方法 (music)。 //調(diào)用有參的speak(music)方法 } } Java EE基礎(chǔ)教程 22 2021年 11月 10日星期三 ? ?Java中有一種特殊的方法叫構(gòu)造方法(Constructor),它是產(chǎn)生對(duì)象時(shí)需要調(diào)用的方法。 Java 中的每個(gè)類都有構(gòu)造方法,用來(lái)初始化該類的一個(gè)對(duì)象。構(gòu)造方法具有和類名相同的名稱,而且不返回任何數(shù)據(jù)類型。重載經(jīng)常用于構(gòu)造方法。構(gòu)造方法只能由 new運(yùn)算符調(diào)用。 Java EE基礎(chǔ)教程 23 2021年 11月 10日星期三 構(gòu)造方法的形式如下: public 類名 (參數(shù)列表 ) { 語(yǔ)句體 } 說(shuō)明: 構(gòu)造方法名必須為該類名; 可以通過(guò)參數(shù)表和方法體來(lái)給生成的對(duì)象的成員變量賦初值; 構(gòu)造方法沒(méi)有任何返回值。 每個(gè)類至少有一個(gè)構(gòu)造函數(shù)。類被定義時(shí)如果沒(méi)有顯式地定義一個(gè)構(gòu)造方法,那么編譯器會(huì)自動(dòng)創(chuàng)建一個(gè)默認(rèn)構(gòu)造方法,缺省構(gòu)造函數(shù)沒(méi)有 參數(shù),而且函數(shù)體為空。缺省構(gòu)造方法的形式如下: public類名 ( ){ } 這使得能夠通過(guò)使用“ new類名 ()。”語(yǔ)句產(chǎn)生類的對(duì)象。 Java EE基礎(chǔ)教程 24 2021年 11月 10日星期三 ?一旦在類中自定義了構(gòu)造方法,編譯器就不會(huì)提供默認(rèn)的構(gòu)造方法了。此時(shí),語(yǔ)句“ new 類名 ()?!睂?huì)引起編譯錯(cuò)誤。 ?可以通過(guò)為幾個(gè)構(gòu)造函數(shù)提供不同的參數(shù)表的辦法來(lái)重載構(gòu)造函數(shù)。 ?如果有一個(gè)類帶有幾個(gè)構(gòu)造函數(shù),那么也許會(huì)想復(fù)制其中一個(gè)構(gòu)造函數(shù)的某方面效果到另一個(gè)構(gòu)造函數(shù)中??梢酝ㄟ^(guò)使用關(guān)鍵字 this作為一個(gè)方法調(diào)用來(lái)達(dá)到這個(gè)目的。 Java EE基礎(chǔ)教程 25 2021年 11月 10日星期三 例如: public class Employee { private String name。 private int salary。 public Employee(String n, int s) { name = n。 salary = s。 } public Employee(String n) { this(n, 0)。 } public Employee() { this( Unknown )。 } } 在第二個(gè)構(gòu)造函數(shù)中,有一個(gè)字符串參數(shù),調(diào)用 this(n,0)將控制權(quán)傳遞到構(gòu)造函數(shù)的第一個(gè)版本,即采用了一個(gè) String參數(shù)和一個(gè) int參數(shù)的構(gòu)造函數(shù)中。 在第三個(gè)構(gòu)造函數(shù)中,它沒(méi)有參數(shù),調(diào)用 this(“Unknownn”)將控制權(quán)傳遞到構(gòu)造函數(shù)的第二個(gè)版本,即采用了一個(gè)String參數(shù)的構(gòu)造函數(shù)中,再由第二個(gè)版本傳遞帶第一個(gè)版本中。 Java EE基礎(chǔ)教程 26 2021年 11月 10日星期三 在任何構(gòu)造函數(shù)中如果出現(xiàn)對(duì)于 this的調(diào)用,則必須是第一個(gè)語(yǔ)句。 例 45 設(shè)計(jì)一個(gè)矩形類 Rectangle,該類重載了多個(gè)構(gòu)造方法。 程序清單: ch04\ import .*。 class Rectangle { //矩形類 private int width。 //矩形的寬度 private int length。 //矩形的長(zhǎng)度 Rectangle(){ //不帶參數(shù)的構(gòu)造函數(shù),缺省的給出長(zhǎng)( 30)和寬( 20) length=30。width=20。 } Rectangle(int l,int w) { //帶參數(shù)的構(gòu)造函數(shù) length=l。width=w。 } Java EE基礎(chǔ)教程 27 2021年 11月 10日星期三 Rectangle(Rectangle r){ //此構(gòu)造方法以另一個(gè) Rectangle對(duì)象作為參數(shù) width=()。 //通過(guò)對(duì)象調(diào)用函數(shù)并附值給相應(yīng)變量 length=()。 } int width(){ //返回寬度 return width。 } int length(){ //返回長(zhǎng)度 return length。 } } Java EE基礎(chǔ)教程 28 2021年 11月 10日星期三 public class CRctngle{ public static void main (String[] args) { Rectangle x1=new Rectangle()。 //聲明類的對(duì)象并實(shí)例化 Rectangle x2=new Rectangle(50,40)。 //聲明類的對(duì)象并初始化 Rectangle x3=new Rectangle(x1)。 (()=+())。 (()=+())。 (()=+())。 (()=+())。 (()=+())。 (()=+())。 } } Java EE基礎(chǔ)教程 29 2021年 11月 10日星期三 ? ?有了類,就可以創(chuàng)建類的對(duì)象。對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位。一個(gè)對(duì)象由一組屬性和對(duì)這組屬性進(jìn)行操作的一組服務(wù)組成。一個(gè)對(duì)象的生命周期包括三個(gè)階段:生成、使用和消除。 Java EE基礎(chǔ)教程 30 2021年 11月 10日星期三 ? 1.對(duì)象的生成 ?對(duì)象的生成包括聲明、實(shí)例化。 格式為: className objectName=new className([paramlist])。 聲明: className objectName ?聲明并不為對(duì)象實(shí)體分配內(nèi)存空間,而只是分配一個(gè)引用空間;對(duì)象的引用類似于指針,是 32位的地址空間,它的值指向一個(gè)堆內(nèi)存的數(shù)據(jù)空間,它存儲(chǔ)著有關(guān)數(shù)據(jù)類型的信息以及堆內(nèi)存中當(dāng)前對(duì)象實(shí)體的地址,而對(duì)于對(duì)象實(shí)體所在堆中的實(shí)際的內(nèi)存地址是不可操作的,這就保證了對(duì)象實(shí)體的安全性。 Java EE基礎(chǔ)教程 31 2021年 11月 10日星期三 ?實(shí)例化:運(yùn)算符 new為對(duì)象分配內(nèi)存空間,它調(diào)用對(duì)象的構(gòu)造方法,返回對(duì)象的引用;一個(gè)類的不同對(duì)象分別占據(jù)不同的內(nèi)存空間。如果類中沒(méi)有顯示給出構(gòu)造方法,系統(tǒng)會(huì)調(diào)用默認(rèn)的構(gòu)造方法。 Java EE基礎(chǔ)教程 32 2021年 11月 10日星期三 2.對(duì)象的使用 通過(guò)運(yùn)算符“ .”可以實(shí)現(xiàn)對(duì)對(duì)象屬性的訪問(wèn)和方法的調(diào)用。屬性和方法可以通過(guò)設(shè)定訪問(wèn)權(quán)限來(lái)限制其它對(duì)象對(duì)它的訪問(wèn)。 訪問(wèn)對(duì)象屬性的格式: 。 objectName是一個(gè)已生成的對(duì)象。 例: =“Jack”。 調(diào)用對(duì)象的方法的格式: ([paramlist])。 例如: (“music”)。 new Father( ).speak()。 Java EE基礎(chǔ)教程 33 2021年 11月 10日星期三 ?3.對(duì)象的清除 ?Java 有所謂“垃圾收集”機(jī)制,這種機(jī)制周期地自動(dòng)掃描對(duì)象的動(dòng)態(tài)內(nèi)存區(qū),檢測(cè)某個(gè)實(shí)體是否已不再被任何對(duì)象所引用,如果發(fā)現(xiàn)這樣的實(shí)體,就釋放實(shí)體占有的內(nèi)存。因此, Java 編程人員不必象 C++程序員那樣,要時(shí)刻自己檢查哪些對(duì)象應(yīng)該釋放內(nèi)存。系統(tǒng)垃圾回收方法為:()。當(dāng)系統(tǒng)內(nèi)存用盡或調(diào)用( )要求垃圾回收時(shí),垃圾回收線程與系統(tǒng)同步運(yùn)行。 Java EE基礎(chǔ)教程 34 2021年 11月 10日星期三 下面進(jìn)一步分析對(duì)象的內(nèi)存模型,加深對(duì)對(duì)象在內(nèi)存在存在形式的了解。 程序如下: class Monkey { float hight,weight。 String head, ear,hand,foot, mouth。 void speak(String s) { (s)。 } } class LittleMonkey{ public static void main(String[] args) { Monkey littlemonkey。 //聲明對(duì)象。 littlemonkey =new Monkey()。 //使用 new和默認(rèn)構(gòu)造方法為對(duì)象分配內(nèi)存。 …… } } Java EE基礎(chǔ)教程 35 2021年 11月 10日星期三 Java EE基礎(chǔ)教程 36 2021年 11月 10日星期三 ?當(dāng)用類創(chuàng)建一個(gè)對(duì)象時(shí),類中的成員變量被分配內(nèi)存空間,這些內(nèi)存空間稱做該對(duì)象的實(shí)體,而對(duì)象變量中存放著引用,以確保實(shí)體由該對(duì)象變量操作使用。 ?聲明對(duì)象變量 littlemonkey后, littlemonkey的內(nèi)存中還沒(méi)有任何數(shù)據(jù),這時(shí)的 littlemonkey是一個(gè)空對(duì)象,空對(duì)象不能使用,因?yàn)樗€沒(méi)有得到任何“實(shí)體”。必須再進(jìn)行為對(duì)象實(shí)體分配內(nèi)存的步驟,即創(chuàng)建對(duì)象實(shí)體。 Java EE基礎(chǔ)教程 37 2021年 11月 10日星期三 ?當(dāng)系統(tǒng)見到 littlemonkey=new Monkey()。時(shí),就會(huì)做兩件事: ?首先,為 height、 weight、 head、 ear、 mouth、 hand、foot 各 個(gè) 變 量 分配 內(nèi) 存。即 Monkey類的成員變量被分配內(nèi)存空間。如果成員變量在聲明時(shí)沒(méi)有指定初值,那么,對(duì)于整型變量默認(rèn)初值是 0,對(duì)于浮點(diǎn)型 ,默認(rèn)初值是 ,對(duì)于 booean 型默認(rèn)初值是 false,對(duì)于引用型默認(rèn)初值是null。 ?其次, new運(yùn)算符在為變量 height、 weight、 head、 ear、mouth、 hand、 foot 分配內(nèi)存后,返回一個(gè)代表這實(shí)例對(duì)象的內(nèi)存位置的首地址號(hào)碼給 littlemonkey,可認(rèn)為這個(gè)引用就是 littlemonkey在內(nèi)存里的名字,而且這個(gè)名字引用是 Java系統(tǒng)確保分配給 height、 weight、 head、 ear、mouth、 hand、 foot 的內(nèi)存單元將由 littlemonkey 操作管理。稱 height、 weight、 head、 ear、 mouth、 hand、 foot分配的內(nèi)存單元是屬于對(duì)象 littlemonkey的。所謂為對(duì)象分配內(nèi)存就是指為它分配變量,并獲得一個(gè)引用,以確保這些變量由它來(lái)“操作管理”。 Java EE基礎(chǔ)教程 38 2021年 11月 10日星期三 例 46 以 Point 類為例說(shuō)明對(duì)象與實(shí)體的關(guān)系。 程序清單: ch04\ class Point{ int x,y。 Point(){ x=0。 y=0。 } Point(int x, int y){ =x。 =y。 } } class TestPoint{ public static void main(String[] args){ Point p1=new Point(34,56)。 Point p2=new Point(21,67) p1=p2。 } } Java EE基礎(chǔ)教程 39 2021年 11月 10日星期三 ?程序中使用了賦值語(yǔ)句“ p1=p2。”把引用變量 p2在內(nèi)存中的名字賦給了 p1,因此 p1和 p2本質(zhì)上是一樣的了,即p p2 有相同的實(shí)體。雖然在程序中 p1, p2 是兩個(gè)名字,但在系統(tǒng)看來(lái)他們引用同一個(gè)對(duì)象,他們對(duì)應(yīng)的是同一個(gè)地址。此時(shí) p p2如同一個(gè)人有兩個(gè)名字一樣。系統(tǒng)將取消原來(lái)分配給 p1的內(nèi)存。這時(shí)如果輸出 結(jié)果將是 21,而不是 34。 Java EE基礎(chǔ)教程 40 2021年 11月 10日星期三 ?一個(gè)類創(chuàng)建的兩個(gè)對(duì)象,如果具有相同的引用,那么就具有完全相同的實(shí)體。 ?對(duì)象不僅可以操作自己的變量改變狀態(tài),而且還擁有了調(diào)用創(chuàng)建它的那個(gè)類中的方法的能力,對(duì)象通過(guò)使用這些方法可以產(chǎn)生一定的行為。 ?對(duì)象創(chuàng)建之后,就有了自己的變量,即對(duì)象的實(shí)體。通過(guò)使用運(yùn)算符“ .”,對(duì)象可以實(shí)現(xiàn)對(duì)自己的變量和方法的訪問(wèn)。 ?類中的方法可以操作成員變量。當(dāng)對(duì)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1