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

正文內(nèi)容

解析java程序設(shè)計(jì)ppt-資料下載頁(yè)

2025-01-21 23:33本頁(yè)面
  

【正文】 Item { … //其它成員變量 private static int itemCount = 0。 //計(jì)數(shù) Item對(duì)象生成的個(gè)數(shù) protected void finalize() { //當(dāng)有一個(gè) Item對(duì)象釋放時(shí)會(huì)執(zhí)行該方法,此時(shí)對(duì) itemCount減 1 (有一個(gè) Item對(duì)象釋放了 )。 itemCount。 } … //其它成員方法 } 為了觀察計(jì)數(shù)的結(jié)果,在程序中主動(dòng)調(diào)用了 Java的垃圾收集方法,以及重寫了 finalize()方法,當(dāng)有 Item對(duì)象成功釋放后,會(huì)輸出提示信息。 Java有一個(gè)垃圾收集器,它周期性的將不再被引用的對(duì)象從內(nèi)存中清除。這個(gè)垃圾收集器是自動(dòng)執(zhí)行的,它掃描對(duì)象的動(dòng)態(tài)存儲(chǔ)區(qū)并將引用的對(duì)象作標(biāo)記,將沒(méi)有引用的對(duì)象作為垃圾收集起來(lái),定期的釋放那些不再需要的對(duì)象所占用的內(nèi)存空間。也可以在任何時(shí)候在 Java程序中通過(guò)調(diào)用 System的 gc()方法來(lái)運(yùn)行垃圾收集程序。 靜態(tài)成員方法 當(dāng)定義一個(gè)方法的時(shí)候,使用 static關(guān)鍵字說(shuō)明該方法是類方法而不是實(shí)例方法。當(dāng)?shù)谝淮握{(diào)用含類方法的類時(shí),系統(tǒng)只為該類的類方法創(chuàng)建一個(gè)版本。這個(gè)版本被該類和該類的所有實(shí)例所共享。 類方法只能操作類變量,不能訪問(wèn)在類中定義的實(shí)例變量,同時(shí),類方法可以在類中被調(diào)用,不必通過(guò)創(chuàng)建一個(gè)實(shí)例對(duì)象來(lái)調(diào)用一個(gè)類方法,當(dāng)然也可以在實(shí)例對(duì)象中調(diào)用類方法。 實(shí)例成員和類成員之間的另外一個(gè)不同點(diǎn)是,類成員可用類名來(lái)訪問(wèn),不必通過(guò)創(chuàng)建類的對(duì)象來(lái)訪問(wèn)類成員,這里的成員可以是成員變量和成員方法。其格式為: 類名 .類成員名 返回 基本的輸入輸出 由于 C語(yǔ)言出現(xiàn)較早,那時(shí)還沒(méi)有圖形用戶界面( Graphics User Interface)的概念,因此, C語(yǔ)言提供了許多用來(lái)輸入、輸出數(shù)據(jù)的函數(shù),例如 printf 、scanf等。 而 Java不提供在命令行進(jìn)行數(shù)據(jù)輸入、輸出的功能不多。關(guān)于輸入、輸出我們將在后面的章節(jié)詳細(xì)介紹,現(xiàn)在只需知道它的作用是在命令行窗口(例如, MSDOS窗口)輸入輸出數(shù)據(jù)即可。 Sun公司新推出的 、輸出的功能。 1.?dāng)?shù)據(jù)的輸出 Java中數(shù)據(jù)輸出使用得最多的是下面兩個(gè)靜態(tài)方法: () () 例: 數(shù)據(jù)輸出示例。源代碼如下: public class Example{ public static void main(String args[]) { long x = 5678。 float f = 。 double d = 。 char c = 39。a39。 (x + \n + f + \n + d + \n + c)。 } } 2.?dāng)?shù)據(jù)的輸入 Scanner是 ,可以使用該類創(chuàng)建一個(gè)對(duì)象: Scanner reader = new Scanner()。 然后 reader對(duì)象調(diào)用下列方法,讀取用戶在命令行輸入的各種數(shù)據(jù)類型: nextByte(), nextDouble(),nextFloat(),nextInt(),nextLine(),nextLong(),nextShort()。 上述方法執(zhí)行時(shí)都會(huì)堵塞,等待你在命令行輸入數(shù)據(jù)回車確認(rèn)。 例: 從鍵盤輸入若干個(gè)數(shù),求所輸入數(shù)的和與平均值,輸入以任何非數(shù)字結(jié)束操作。源代碼如下: import .*。 public class Example{ public static void main (String args[]){ (請(qǐng)輸入若干個(gè)數(shù),每輸入一個(gè)數(shù)回車確認(rèn) )。 (最后輸入一個(gè)非數(shù)字結(jié)束輸入操作 )。 Scanner reader=new Scanner()。 double sum=0。 int m=0。 while(()) { double x = ()。 m=m+1。 sum=sum+x。 } (%d個(gè)數(shù)的和為 %f\n,m,sum)。 (%d個(gè)數(shù)的平均值是 %f\n,m,sum/m)。 } } 返回 問(wèn)題的實(shí)現(xiàn) Item類 public class Item { private String name。 private String address。 private String telephone。 private static int itemCount = 0。 //計(jì)數(shù) Item對(duì)象生成的個(gè)數(shù) Item(String _name, String _address, String _telephone) {} Item() {} Item(Item _item) {} public void setName(String _name) {} public void setAddress(String _address) {} public void setTelephone(String _telephone) {} public String getName() {} public String getAddress() {} public String getTelephone() {} public static int getItemCount() {} //返回 Item對(duì)象生成的個(gè)數(shù) } AddressList 類 public class AddressList { //使用對(duì)象數(shù)組存儲(chǔ)條目 private Item itemList[] = new Item[100]。 //假設(shè)地址簿的條目不超過(guò) 100個(gè) private int total。 //數(shù)組中有效的條目數(shù)目 public void addItem(Item _item) {} public void removeItem(String _name) {} public Item findItem(String _name) {} } AddressBook類 該類用來(lái)調(diào)試程序的,在類的 main方法中實(shí)例化 AddressList類,并且實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的菜單操作。 程序的運(yùn)行結(jié)果部分圖示如下,左邊是列出地址簿中的所有條目,右邊是添加一個(gè)條目到地址簿。 返回 結(jié)束 第 4章 繼承和多態(tài) 問(wèn)題的提出與分析 【 例 41】 編程實(shí)現(xiàn)一個(gè)超級(jí)市場(chǎng)銷售系統(tǒng)。超級(jí)市場(chǎng)銷售系統(tǒng)是超級(jí)市場(chǎng)業(yè)務(wù)管理系統(tǒng)的一個(gè)子系統(tǒng)。要求該系統(tǒng)具有如下功能: 系統(tǒng)中記錄了每一種商品的編號(hào)、名稱、單價(jià)等信息,收銀員可通過(guò)該系統(tǒng)為顧客選購(gòu)的商品計(jì)價(jià)、收費(fèi)、打印清單,系統(tǒng)可支持會(huì)員制銷售方式,對(duì)于會(huì)員,每次在超市中消費(fèi)后,系統(tǒng)會(huì)根據(jù)其消費(fèi)金額折算積分并進(jìn)行累加,會(huì)員進(jìn)行消費(fèi)時(shí)系統(tǒng)會(huì)根據(jù)其已有積分值,在所購(gòu)商品的總金額的基礎(chǔ)上進(jìn)行一定優(yōu)惠。銷售商品時(shí)支持其它促銷方式,如打折等。另外,超市管理人員可以進(jìn)行分析操作:按照銷售清單的銷售金額高低順序?qū)ζ溥M(jìn)行查看、統(tǒng)計(jì)每天的銷售總金額等。 為了方便討論,對(duì)其功能做了適當(dāng)?shù)南拗疲涸撟酉到y(tǒng)只負(fù)責(zé)前臺(tái)的銷售管理,對(duì)收款方式只考慮用同一幣種進(jìn)行現(xiàn)金收款,而不處理信用卡付款等業(yè)務(wù)。 類的繼承 繼承是一種由已有的類創(chuàng)建新類的機(jī)制。利用繼承,我們可以先創(chuàng)建一個(gè)擁有共有屬性的一般類,根據(jù)該一般類再創(chuàng)建具有特殊屬性的新類,新類自動(dòng)擁有一般類的屬性和行為,并根據(jù)需要可以增加新的屬性和行為,或者改變父類的行為。由繼承而得到的類稱為子類,被繼承的類稱為父類 , 父類和子類間就可以形成了相應(yīng)的類層次。 子類的定義 通過(guò)在類的聲明中加入 extends子句來(lái)定義一個(gè)類的子類,其基本格式為: class 子類名 extends 父類名 { 新的成員變量 新的成員方法 } 其中,父類可以是自定義的類或 java類庫(kù)中的類。 子類的定義 【 思考 】 為了加深對(duì)類的繼承的理解,請(qǐng)讀者給出下列程序的輸出結(jié)果。 class A { int i=1。 public void printI() { (i=+i)。 } } public class B extends A { public static void main(String[] args) { B b=new B()。 ()。 } } 子類的構(gòu)造方法 子類的對(duì)象中既包含從父類繼承來(lái)的實(shí)例變量 ,也包含它新定義的實(shí)例變量,為了構(gòu)造一個(gè)子類自己的對(duì)象,必須對(duì)所有這些變量進(jìn)行正確的初始化。子類的構(gòu)造方法可以用來(lái)初始化新定義的實(shí)例變量,但需要委托父類的構(gòu)造方法來(lái)正確初始化子類中從父類中繼承下來(lái)的實(shí)例變量,因此,子類的構(gòu)造方法必須顯式或隱式地調(diào)用父類的構(gòu)造方法。 方法的覆蓋和成員變量的隱藏 如果子類中定義方法所用的名稱、返回類型和參數(shù)表和父類中方法所使用的完全一樣,但具體實(shí)現(xiàn)不同,則稱子類方法覆蓋了父類中的方法,在子類對(duì)象上調(diào)用相應(yīng)子類中定義的方法。方法覆蓋也叫方法重寫。 方法的覆蓋和成員變量的隱藏 子類可以隱藏繼承的成員變量,當(dāng)在子類中定義和父類中同名的成員變量時(shí),子類就隱藏了繼承的成員變量,即子類對(duì)象以及子類自己聲明定義的方法操作的是子類中新定義和父類中同名的成員變量。 子類對(duì)象和父類對(duì)象間的轉(zhuǎn)換 假設(shè) B是 A的子類,當(dāng)我們用子類 B創(chuàng)建一個(gè)對(duì)象,并讓一個(gè) A類的引用來(lái)實(shí)際指向這個(gè)子類對(duì)象時(shí),比如: A a=new B()。 那么就稱通過(guò)引用 a所指向的對(duì)象是子類對(duì)象的上轉(zhuǎn)型對(duì)象,即可以將一個(gè)對(duì)象作為它自己的類型使用,或者作為它的父類類型的一個(gè)對(duì)象使用。一個(gè)對(duì)象的上轉(zhuǎn)型對(duì)象的實(shí)體是子類負(fù)責(zé)創(chuàng)建的,但由于是通過(guò)父類型的引用來(lái)使用對(duì)象時(shí),就只能使用其父類型中所定義的公有接口功能,而會(huì)失去原對(duì)象的一些屬性和功能。 子類對(duì)象和父類對(duì)象間的轉(zhuǎn)換 在類層次中 , 層次越高其兼容性越廣 , 或者說(shuō)層次越低越具體 。 如果期望得到一個(gè)父類型對(duì)象而實(shí)際得到了一個(gè)子類型對(duì)象 , 那么就需要進(jìn)行向上轉(zhuǎn)換(upcasting)。 這種轉(zhuǎn)換將導(dǎo)致子類型對(duì)象被當(dāng)作父類型的實(shí)例來(lái)對(duì)待 , 并且可以在編譯時(shí)進(jìn)行檢查 。 與此相反 , 將父類型對(duì)象轉(zhuǎn)換為子類型對(duì)象 , 我們將它稱作向下轉(zhuǎn)換 ( downcasting) 。 抽象類和接口 面向?qū)ο蟪绦蛟O(shè)計(jì)中,利用抽象類 (abstract class),可以聲明僅定義了部分實(shí)現(xiàn)的類,讓該類的子類提供某些或全部方法的具體實(shí)現(xiàn)。抽象類通常代表一個(gè)抽象概念,它提供一個(gè)繼承的出發(fā)點(diǎn)。 Java中,一個(gè)接口 (interface)僅僅描述方法的特征 ,而不給出方法的具體實(shí)現(xiàn);而類不僅給出方法的特征,還給出方法的具體實(shí)現(xiàn)。因此,接口把方法的特征和實(shí)現(xiàn)分離開(kāi),可以將接口看作是代表某一個(gè)角色,而實(shí)現(xiàn)這個(gè)接口的類便是扮演這個(gè)角色的演員,一個(gè)角色可以由不同的演員來(lái)演,而不同的演員之間除了扮演一個(gè)共同的角色外,并不要求有任何其它的共同之處。 接口可以看作一種非常特殊的抽象類,其中所有的方法均為抽象方法,它是 Java中對(duì) C++多繼承性的替代。 用關(guān)鍵字 abstract修飾的類稱為抽象類。其一般格式為: abstract class 類名 { 類體 } 抽象類不能用 new運(yùn)算符創(chuàng)建對(duì)象,必須產(chǎn)生其子類,由子類創(chuàng)建對(duì)象。 抽象 (abstract)的反義詞是具體 (concrete),如果某個(gè)類只有具體的方法,包括從父類繼承來(lái)的任何抽象方法的實(shí)現(xiàn),那么這就是一個(gè)具體的類。若抽象類的類體中有抽象方法,則該方法只允許聲明,而不允許實(shí)現(xiàn),而該類的子類如果是一個(gè)具體類的話,就必須實(shí)現(xiàn)抽象方法,即重新定義父類的抽象方法。 抽象類的定義 Java中,一個(gè)接口 (interface)僅僅描述方法的特征,而不給出方法的具體實(shí)現(xiàn);而類不僅給出方法的特征,還給出方法的具體實(shí)現(xiàn)。因此,接口把方法的特征和實(shí)現(xiàn)分離開(kāi),可以將接口看作是代表某一個(gè)角色,而實(shí)現(xiàn)這個(gè)接口的類便是扮演這個(gè)角色的演員,一個(gè)角色可以由不同的演員來(lái)演,而不同的演員之間除了扮演一個(gè)共同的角色外,并不要求有任何其它的共同之處。 什么是接口 Java中使用關(guān)鍵字 interface來(lái)定義一個(gè)接口。接口的定義和類的定義很相似,分為接口的聲明和接口體。 ( 1)接口用關(guān)鍵字 interface聲明,其一般格式為: [修飾符 ] interface 接口名 其中,修飾符可以為 public,abstract等,但不能為 private。 ( 2)接口體 接口體中包含常量定義和方法定義兩部分。接口體中只進(jìn)行方法的聲明,不許提供
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1