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

正文內(nèi)容

第二章類與對象的基本概念(參考版)

2024-09-05 08:44本頁面
  

【正文】 – 如果需要特殊的轉(zhuǎn)換功能,則需要自己重寫toString()方法 。 + (hashCode()) ?下面的兩行代碼等價 (anAccount)。 } } 應(yīng)用舉例 聲明 BankAccount類 —— JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 105 ? 測試結(jié)果 Here is the account: BankAccount372a1a Account name: ZhangLi Account number: 100023 Balance: $ 應(yīng)用舉例 聲明 BankAccount類 (續(xù) ) —— AccountTester測試結(jié)果 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 106 ? toString()方法 – 將對象的內(nèi)容轉(zhuǎn)換為字符串 – Java的所有類都有一個默認(rèn)的 toString()方法,其方法體如下: getClass().getName() + 39。 (Account number: + ())。 (Here is the account: + anAccount)。 anAccount = new BankAccount(ZhangLi, 100023,0)。 } public void setBalance(float newBalance) { balance = newBalance。 } public void setOwnerName(String newName) { ownerName = newName。 } public int getAccountNumber() { return accountNumber。 balance = initBal。 } public BankAccount(String initName, int initAccNum, float initBal) { ownerName = initName。 private float balance。 } 構(gòu)造方法 (續(xù) ) —— JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 97 ? 內(nèi)存回收技術(shù) – 當(dāng)一個對象在程序中不再被使用時,就成為一個無用對象 ? 當(dāng)前的代碼段不屬于對象的作用域 ? 把對象的引用賦值為空 – Java運(yùn)行時系統(tǒng) 通過 垃圾收集器 周期性地釋放無用對象所使用的內(nèi)存 – Java運(yùn)行時系統(tǒng) 會在對對象進(jìn)行自動垃圾回收前,自動調(diào)用對象的 finalize()方法 內(nèi)存回收技術(shù) 對象初始化和回收 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 98 ? 垃圾收集器 –自動掃描對象的動態(tài)內(nèi)存區(qū),對不再使用的對象做上標(biāo)記以進(jìn)行垃圾回收 –作為一個線程運(yùn)行 ?通常在系統(tǒng)空閑時異步地執(zhí)行 ?當(dāng)系統(tǒng)的內(nèi)存用盡或程序中調(diào)用 ()要求進(jìn)行垃圾收集時,與系統(tǒng)同步運(yùn)行 內(nèi)存回收技術(shù) (續(xù) ) —— 垃圾收集器 對象初始化和回收 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 99 ? finalize()方法 – 在類 ,因此 Java中的每一個類都有該方法 – 用于釋放系統(tǒng)資源,如關(guān)閉打開的文件或 socket等 – 聲明格式 protected void finalize() throws throwable – 如果一個類需要釋放除內(nèi)存以外的資源,則需在類中重寫 finalize()方法 內(nèi)存回收技術(shù) (續(xù) ) —— finalize()方法 對象初始化和回收 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 100 ? 同 C和 C++的區(qū)別 – C語言中通過 free來釋放內(nèi)存 – C++中則通過 delete來釋放內(nèi)存 –在 C和 C++中,如果程序員忘記釋放內(nèi)存,則容易造成內(nèi)存泄漏甚至導(dǎo)致內(nèi)存耗盡 –在 Java中不會發(fā)生內(nèi)存泄漏情況,但對于其它資源,則有產(chǎn)生泄漏的可能性 內(nèi)存回收技術(shù) (續(xù) ) —— 同 C和 C++的區(qū)別 對象初始化和回收 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 101 ? 對銀行帳戶類 BankAccount進(jìn)行一系列修改和測試 –聲明 BankAccount類 –聲明 toString()方法 –聲明存取款方法 –使用 DecimalFormat類 –聲明類方法生成特殊的實(shí)例 –聲明類變量 應(yīng)用舉例 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 102 ? 包括狀態(tài)、構(gòu)造方法、 get方法及 set方法 public class BankAccount{ private String ownerName。 accountNumber = initAccountNumber。 } public BankAccount(String initName, int initAccountNumber) { this(initName, initAccountNumber, )。 } new Tree()。 ()。 i 5。 } static void prt(String s) { (s)。 } void info() { prt(Tree is + height + feet tall)。 } Tree(int i) { prt(Creating new Tree that is + i + feet tall)。 Tree() { prt(Planting a seedling)。 import .*。 balance = 。但是,只要用戶聲明了構(gòu)造方法,即使沒有聲明無參的構(gòu)造方法,系統(tǒng)也不再賦默認(rèn)的構(gòu)造方法 構(gòu)造方法 (續(xù) ) —— 對象初始化和回收 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 91 ? 在例 2_13基礎(chǔ)上再聲明一個無參的構(gòu)造方法 public BankAccount() { ownerName = 。如果在一個類中不存在無參的構(gòu)造方法,則要求其子類聲明時必須聲明構(gòu)造方法,否則在子類對象的初始化時會出錯 –在聲明構(gòu)造方法時,好的聲明習(xí)慣是 ?不聲明構(gòu)造方法 ?如果聲明,至少聲明一個無參構(gòu)造方法 對象初始化和回收 構(gòu)造方法 (續(xù) ) —— 自定義無參構(gòu)造方法 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 90 ? 構(gòu)建一個 Bush類,有兩個有參數(shù)的構(gòu)造方法 class Bush { Bush(int i) {} Bush(double d) {} } – 如果寫: new Bush()。 balance = 。 } ? 假設(shè)一個新帳號的初始余額可以為 0,則可增加一個帶有兩個參數(shù)的構(gòu)造方法 public BankAccount(String initName, int initAccountNumber) { ownerName = initName。 accountNumber = initAccountNumber。 } } 構(gòu)造方法 (續(xù) ) —— 例 2_12(使用默認(rèn)構(gòu)造方法) 對象初始化和回收 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 86 ? 運(yùn)行結(jié)果 ownerName=null accountNumber=0 balance= 對象初始化和回收 構(gòu)造方法 (續(xù) ) —— 例 2_12運(yùn)行結(jié)果 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 87 ? 自定義構(gòu)造方法與方法重載 –可在生成對象時給構(gòu)造方法傳送初始值,使用希望的值給對象初始化 –構(gòu)造方法可以被重載,構(gòu)造方法的重載和方法的重載一致 –一個類中有兩個及以上同名的方法,但參數(shù)表不同,這種情況就被稱為方法重載。 (accountNumber= + )。 } public class BankTester{ public static void main(String args[]){ BankAccount myAccount = new BankAccount()。 int accountNumber。代碼如下: public void setRadius(int radius){ = radius。 } 類成員的訪問控制 (續(xù) ) —— set方法 類與對象 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 80 ? 關(guān)鍵字 this的使用 – 如果形式參數(shù)名與實(shí)例變量名相同,則需要在實(shí)例變量名之前加 this關(guān)鍵字,否則系統(tǒng)會將實(shí)例變量當(dāng)成形式參數(shù)。 } 類成員的訪問控制 (續(xù) ) —— get方法 類與對象 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 79 ? set方法 – 功能是修改屬性變量的值 – set方法名以“ set”開頭,后面是實(shí)例變量的名字 – 一般具有以下格式 public void setFieldName(fieldType paramName) { fieldName = paramName。通常有兩類典型的方法用于訪問屬性值, get方法及 set方法 類成員的訪問控制 (續(xù) ) —— 例 2_11編譯 類與對象 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 78 ? get方法 – 功能是取得屬性變量的值 – get方法名以“ get”開頭,后面是實(shí)例變量的名字 – 一般具有以下格式: public fieldType getFieldName() { return fieldName?!奔啊? = 10。 (Circle 2 has circumference + circum2)。 double circum2 = ()。 = 10。 = 50。 public double circumference() { return 2 * PI * radius。 ? 其中 package1[.package2…] 表明包的層次,它對應(yīng)于文件目錄 ? classname則指明所要引入的類名 ? 如果要引入一個包中的所有類,則可以使用星號( *)來代替類名 類與對象 類的組織 —— 包的概念 (續(xù) ) JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 72 ? 類的訪問控制 –類的訪問控制只有 public( 公共類)及無修飾符(缺省類)兩種 –訪問權(quán)限符與訪問能力之間的關(guān)系如表 類與對象 類的訪問控制 類型 無修飾 public 同一包中的類 yes yes 不同包中的類 no yes JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 73 ? 類成員的訪問控制 – 公有 (public) ? 可以被其他任何對象訪問 (前提是對類成員所在的類有訪問權(quán)限 ) – 保護(hù) (protected) ? 只可被同一類及其子類的實(shí)例對象訪問 – 私有 (private) ? 只能被這個類本身訪問,在類外不可見 – 默認(rèn) (default) ? 僅允許同一個包內(nèi)的訪問;又被稱為“包( package)訪問權(quán)限” 類成員的訪問控制 類與對象 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 74 類型 private 無修飾 protected public 同一類 yes yes yes yes 同一包中的 子類 no yes yes yes 同一包中的 非子類 no yes yes yes 不同包中的 子類 no no yes yes 不同包中的 非子類 no no
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1