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

正文內(nèi)容

解析java程序設(shè)計(jì)ppt(參考版)

2025-01-24 23:33本頁面
  

【正文】 ( 2)接口體 接口體中包含常量定義和方法定義兩部分。接口的定義和類的定義很相似,分為接口的聲明和接口體。因此,接口把方法的特征和實(shí)現(xiàn)分離開,可以將接口看作是代表某一個(gè)角色,而實(shí)現(xiàn)這個(gè)接口的類便是扮演這個(gè)角色的演員,一個(gè)角色可以由不同的演員來演,而不同的演員之間除了扮演一個(gè)共同的角色外,并不要求有任何其它的共同之處。若抽象類的類體中有抽象方法,則該方法只允許聲明,而不允許實(shí)現(xiàn),而該類的子類如果是一個(gè)具體類的話,就必須實(shí)現(xiàn)抽象方法,即重新定義父類的抽象方法。其一般格式為: abstract class 類名 { 類體 } 抽象類不能用 new運(yùn)算符創(chuàng)建對象,必須產(chǎn)生其子類,由子類創(chuàng)建對象。 接口可以看作一種非常特殊的抽象類,其中所有的方法均為抽象方法,它是 Java中對 C++多繼承性的替代。 Java中,一個(gè)接口 (interface)僅僅描述方法的特征 ,而不給出方法的具體實(shí)現(xiàn);而類不僅給出方法的特征,還給出方法的具體實(shí)現(xiàn)。 抽象類和接口 面向?qū)ο蟪绦蛟O(shè)計(jì)中,利用抽象類 (abstract class),可以聲明僅定義了部分實(shí)現(xiàn)的類,讓該類的子類提供某些或全部方法的具體實(shí)現(xiàn)。 這種轉(zhuǎn)換將導(dǎo)致子類型對象被當(dāng)作父類型的實(shí)例來對待 , 并且可以在編譯時(shí)進(jìn)行檢查 。 子類對象和父類對象間的轉(zhuǎn)換 在類層次中 , 層次越高其兼容性越廣 , 或者說層次越低越具體 。 那么就稱通過引用 a所指向的對象是子類對象的上轉(zhuǎn)型對象,即可以將一個(gè)對象作為它自己的類型使用,或者作為它的父類類型的一個(gè)對象使用。 方法的覆蓋和成員變量的隱藏 子類可以隱藏繼承的成員變量,當(dāng)在子類中定義和父類中同名的成員變量時(shí),子類就隱藏了繼承的成員變量,即子類對象以及子類自己聲明定義的方法操作的是子類中新定義和父類中同名的成員變量。 方法的覆蓋和成員變量的隱藏 如果子類中定義方法所用的名稱、返回類型和參數(shù)表和父類中方法所使用的完全一樣,但具體實(shí)現(xiàn)不同,則稱子類方法覆蓋了父類中的方法,在子類對象上調(diào)用相應(yīng)子類中定義的方法。 } } 子類的構(gòu)造方法 子類的對象中既包含從父類繼承來的實(shí)例變量 ,也包含它新定義的實(shí)例變量,為了構(gòu)造一個(gè)子類自己的對象,必須對所有這些變量進(jìn)行正確的初始化。 } } public class B extends A { public static void main(String[] args) { B b=new B()。 class A { int i=1。 子類的定義 通過在類的聲明中加入 extends子句來定義一個(gè)類的子類,其基本格式為: class 子類名 extends 父類名 { 新的成員變量 新的成員方法 } 其中,父類可以是自定義的類或 java類庫中的類。利用繼承,我們可以先創(chuàng)建一個(gè)擁有共有屬性的一般類,根據(jù)該一般類再創(chuàng)建具有特殊屬性的新類,新類自動擁有一般類的屬性和行為,并根據(jù)需要可以增加新的屬性和行為,或者改變父類的行為。 為了方便討論,對其功能做了適當(dāng)?shù)南拗疲涸撟酉到y(tǒng)只負(fù)責(zé)前臺的銷售管理,對收款方式只考慮用同一幣種進(jìn)行現(xiàn)金收款,而不處理信用卡付款等業(yè)務(wù)。銷售商品時(shí)支持其它促銷方式,如打折等。超級市場銷售系統(tǒng)是超級市場業(yè)務(wù)管理系統(tǒng)的一個(gè)子系統(tǒng)。 程序的運(yùn)行結(jié)果部分圖示如下,左邊是列出地址簿中的所有條目,右邊是添加一個(gè)條目到地址簿。 //假設(shè)地址簿的條目不超過 100個(gè) private int total。 private static int itemCount = 0。 private String address。 (%d個(gè)數(shù)的平均值是 %f\n,m,sum/m)。 sum=sum+x。 while(()) { double x = ()。 double sum=0。 (最后輸入一個(gè)非數(shù)字結(jié)束輸入操作 )。源代碼如下: import .*。 上述方法執(zhí)行時(shí)都會堵塞,等待你在命令行輸入數(shù)據(jù)回車確認(rèn)。 } } 2.?dāng)?shù)據(jù)的輸入 Scanner是 ,可以使用該類創(chuàng)建一個(gè)對象: Scanner reader = new Scanner()。a39。 double d = 。源代碼如下: public class Example{ public static void main(String args[]) { long x = 5678。 Sun公司新推出的 、輸出的功能。 而 Java不提供在命令行進(jìn)行數(shù)據(jù)輸入、輸出的功能不多。 實(shí)例成員和類成員之間的另外一個(gè)不同點(diǎn)是,類成員可用類名來訪問,不必通過創(chuàng)建類的對象來訪問類成員,這里的成員可以是成員變量和成員方法。這個(gè)版本被該類和該類的所有實(shí)例所共享。 靜態(tài)成員方法 當(dāng)定義一個(gè)方法的時(shí)候,使用 static關(guān)鍵字說明該方法是類方法而不是實(shí)例方法。這個(gè)垃圾收集器是自動執(zhí)行的,它掃描對象的動態(tài)存儲區(qū)并將引用的對象作標(biāo)記,將沒有引用的對象作為垃圾收集起來,定期的釋放那些不再需要的對象所占用的內(nèi)存空間。 } … //其它成員方法 } 為了觀察計(jì)數(shù)的結(jié)果,在程序中主動調(diào)用了 Java的垃圾收集方法,以及重寫了 finalize()方法,當(dāng)有 Item對象成功釋放后,會輸出提示信息。 //計(jì)數(shù) Item對象生成的個(gè)數(shù) protected void finalize() { //當(dāng)有一個(gè) Item對象釋放時(shí)會執(zhí)行該方法,此時(shí)對 itemCount減 1 (有一個(gè) Item對象釋放了 )。 } } 在地址簿管理程序中,類 Item中定義了一個(gè)靜態(tài)成員變量 itemCount,用來對生成的 Item實(shí)例的數(shù)目進(jìn)行計(jì)數(shù)。 ( = + ())。 (1)。源代碼如下: public class Compare_test { public static void main(String args[]) { AnIntegerNamedX myX = new AnIntegerNamedX()。 } public void setX(int newX){ x = newX。源代碼如下: class AnIntegerNamedX{ static int x。因此,可以通過類本身或者某個(gè)對象來訪問類變量。 靜態(tài)成員變量 在聲明成員變量的時(shí)候,如果使用 static關(guān)鍵字進(jìn)行修飾,則該變量是一個(gè)類變量。 返回 靜態(tài)成員 有些關(guān)于對象的信息是屬于全局性的,比如,設(shè)計(jì)一個(gè)類,它能保存由這個(gè)類已經(jīng)生成對象的個(gè)數(shù),這個(gè)信息和所有對象相關(guān),因此應(yīng)該把這個(gè)信息保存在類變量中,也就是靜態(tài)成員變量。 else return false。amp。amp。其實(shí)上面表達(dá)式的含義是比較 item1和item3兩個(gè)引用的值,也就是比較兩個(gè)對象的內(nèi)存單元地址是否相等,顯然這是不等的,因?yàn)?item1和 item3分別指向不同的內(nèi)存單元。 對象之間如何比較相等還是不等呢?能否和簡單變量一樣使用 a == b這樣的表達(dá)式來比較呢?顯然是不行的。 張三 重慶 02312345678 李萍 武漢 02712345678 item1 item2 item3 與簡單變量不同,對象類型的變量實(shí)際上應(yīng)看作由兩部分組成,一個(gè)是對象的引用,例如item1,它本身也占用一定的內(nèi)存空間,和C/C++的指針有些類似;另一個(gè)才是對象本身的內(nèi)容,例如上圖中 item1所指向的矩形框。 這樣定義的對象 item3實(shí)際上并沒有給它分配新的內(nèi)存空間,它和對象 item1所引用的空間實(shí)際上是一樣的。 定義了兩個(gè)對象 item1和 item2,給這兩個(gè)對象分配內(nèi)存空間是使用 new運(yùn)算符完成的。以 Item類為例: Item item1 = new Item(張三 , 重慶 ,02312345678)。如果再定義一個(gè)整型變量 c,使得 c的值和 a的值一樣,可以這樣定義: int c = a。 對象的賦值和比較 簡單變量的賦值我們已經(jīng)很清楚了,例如: int a = 2, b = 3。這樣,帶 this前綴的為成員變量,參數(shù)和成員變量便一目了然了。在方法中出現(xiàn) name、 address和 telephone指的是參數(shù)名,而不是成員變量名。 } Item類有四個(gè)成員變量: name、 address、 telephone和itemCount。 = telephone。 //計(jì)數(shù) Item對象生成的個(gè)數(shù) Item(String name, String address, String telephone){ = name。 private String telephone。源代碼如下: public class Item{ private String name。這一點(diǎn)有點(diǎn)類似 C/C++語言中的指針,但是對象的引用不能作為內(nèi)存地址使用,它僅僅作為對象的名字使用。 this關(guān)鍵字 this表示的是當(dāng)前類的當(dāng)前對象本身,更準(zhǔn)確的說, this代表了當(dāng)前對象的一個(gè)引用。 ( 3)構(gòu)造方法的主要作用是完成對象的初始化工作。 構(gòu)造方法是類的一種特殊方法,它的特殊性主要體現(xiàn)在如下幾個(gè)方面: ( 1)構(gòu)造方法的方法名與類名相同。 } 默認(rèn)構(gòu)造方法 如果用戶在定義一個(gè)類的時(shí)候沒有定義自己的構(gòu)造方法,那么系統(tǒng)會提供一個(gè)默認(rèn)的構(gòu)造方法,這個(gè)默認(rèn)的構(gòu)造方法名稱和用戶定義的類名一致,構(gòu)造方法的參數(shù)表為空,構(gòu)造方法的方法體也為空,一般格式為: 類名 (){ 構(gòu)造方法的方法體 } 【 注意 】 如果用戶已經(jīng)定義了自己的構(gòu)造方法,那么系統(tǒng)就不會提供默認(rèn)的構(gòu)造方法,如果用戶在程序中使用無參數(shù)的構(gòu)造方法(也就是想使用系統(tǒng)默認(rèn)提供的構(gòu)造方法),但是用戶在類的定義中沒有顯示提供無參數(shù)的構(gòu)造方法,這時(shí)程序編譯會產(chǎn)生錯誤。 telephone = null。例如姓名、地址、電話在創(chuàng)建對象的時(shí)候都無法確定,可以使用如下的構(gòu)造方法: Item(){ name = null。 itemCount++。 = address。 例: 以 Item類為例,該類定義如下構(gòu)造方法,初始化它的幾個(gè)成員變量。 對象創(chuàng)建好之后就可以使用了,使用對象的一般格式為: 對象 .成員變量名 對象 .成員方法名 構(gòu)造方法的重載 構(gòu)造方法的重載和類中的其它方法重載要求是一樣的,即方法名一樣,但是參數(shù)表不同。 obj = new Item(張三 , 重慶 , 02312345678)。 } 在構(gòu)造方法中有三個(gè)參數(shù) name、 address、 telephone,它們的名字和 Item類的成員變量是同名的,為了在賦值的時(shí)候明確區(qū)分到底使用的是形參還是類的成員變量,這里使用 this關(guān)鍵字來表明引用的是成員變量。 = telephone。 //計(jì)數(shù) Item對象生成的個(gè)數(shù) Item(String name, String address, String telephone){ = name。 private String telephone。 前面已經(jīng)對 Item類進(jìn)行了初步定義,但是還沒有給出它的構(gòu)造方法,下面定義一個(gè)構(gòu)造方法: public class Item{ private String name。若類中沒有定義構(gòu)造方法,系統(tǒng)會調(diào)用默認(rèn)的構(gòu)造方法。 創(chuàng)建對象首先需要說明新建對象所屬的類,因而構(gòu)造方法是與類同名的一種特殊方法;然后要說明新建對象的名字,即賦值號左邊的對象名;賦值號右邊的 new是為新建對象開辟內(nèi)存空間的運(yùn)算符,這些內(nèi)存空間保存對象的成員變量和成員方法。 對象聲明之后還必須為對象分配內(nèi)存,這時(shí)對象才會真正生成。定義了一個(gè)新的類之后,接下來就可以創(chuàng)建這個(gè)類的一個(gè)對象,對象是以類為模板創(chuàng)建的具體實(shí)例。 下圖是對類、屬性和方法的訪問控制的小節(jié)。這個(gè)訪問級允許在相同包中的類訪問成員。 } } 如果一個(gè)類沒有明顯設(shè)置成員訪問級別的時(shí)候,則說明它使用的是包訪問級。 x = 100) score = x。 } public void setScore(int x){ if(x = 0 amp。 private int score。一個(gè)比較好的辦法是把 score定義為私有的,然后通過相應(yīng)的方法去訪問和修改,在方法中對 score的取值范圍做出判斷。=500。例如: Student stu。 public int score。如果程序要求類成員保持一致性,就可以通過方法來管理。 不允許外部代碼隨意訪問類中的成員變量好像是不可思議的事情,其實(shí)這在很
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1