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

正文內(nèi)容

第二章類與對(duì)象的基本概念(專業(yè)版)

2024-10-27 08:44上一頁面

下一頁面
  

【正文】 (Account name: + ())。 private int accountNumber。 height = i。 balance = initBalance。 } – 對(duì)于實(shí)例變量 radius, 聲明其 get方法如下: public int getRadius(){ return radius。因此,要指定搜尋包的路徑,需設(shè)置環(huán)境變量 classpath 類的組織 —— 包的概念 (續(xù) ) 類與對(duì)象 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 71 ? 引入包 – 為了使用其它包中所提供的類,需要使用import語句引入所需要的類 – Java編譯器為所有程序自動(dòng)引入包 – import語句的格式 import package1[.package2…]. (classname |*)。 } public void enlarge(int factor) { radius = radius * factor。 } } 類與對(duì)象 方法成員 (續(xù) ) —— 例 2_7 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 57 ? 運(yùn)行結(jié)果 Circle has area Rectangle has area ? 說明 –不同的類中可以聲明相同方法名的方法 –使用時(shí),系統(tǒng)會(huì)根據(jù)接收者對(duì)象的類型找到相應(yīng)類的方法 方法成員 (續(xù) ) —— 例 2_7運(yùn)行結(jié)果 類與對(duì)象 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 58 ? 帶參數(shù)的方法舉例:在 Circle類中增加方法改變圓的半徑 public class Circle { static double PI = 。 (Circle 1 has circumference + circum1)。} } 數(shù)據(jù)成員 (續(xù) ) —— 類與對(duì)象 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 43 ? 測(cè)試類 ex2_4 class ex2_4 { public static void main(String[] args) { Point p = new Point(1,1)。 = “Beijing。 int gateNumber。 String city1,city2。 Rectangle y。 // 成員方法 public void setTime(int newH, int newM, int newS) { hour=newH 。1 第 二 章 類與對(duì)象的基本概念 清華大學(xué) 鄭 莉 JAVA語言程序設(shè)計(jì) JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 2 目錄 面向?qū)ο蟮某绦蛟O(shè)計(jì)方法概述 類與對(duì)象 對(duì)象初始化和回收 應(yīng)用舉例 UML簡(jiǎn)介 本章小節(jié) JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 3 面向?qū)ο蟮某绦蛟O(shè)計(jì)方法概述 ? 面向?qū)ο蟮某绦蛟O(shè)計(jì) – 與結(jié)構(gòu)化程序設(shè)計(jì)方法相比,更符合人類認(rèn)識(shí)現(xiàn)實(shí)世界的思維方式 – 已成為程序設(shè)計(jì)的主流方向 – 涉及的主要概念 ?抽象 ?封裝 ?繼承 ?多態(tài) JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 4 ? 對(duì)象 –現(xiàn)實(shí)世界中 ?萬物皆對(duì)象 ?都具有 各自的屬性,對(duì)外界都呈現(xiàn)各自的行為 –程序中 ?一切都是對(duì)象 ?都具有標(biāo)識(shí) (identity), 屬性和行為 (方法 ) – 通過一個(gè)或多個(gè)變量來保存其狀態(tài) – 通過方法 (method) 實(shí)現(xiàn)他的行為 面向?qū)ο蟮某绦蛟O(shè)計(jì)方法概述 (續(xù) ) 面向?qū)ο蟪绦蛟O(shè)計(jì)方法概述 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 5 ? 類 – 將屬性及行為相同或相似的對(duì)象歸為一類 – 類可以看成是對(duì)象的抽象,代表了此類對(duì)象所具有的共有屬性和行為 – 在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,每一個(gè)對(duì)象都屬于某個(gè)特定的類 , 面向?qū)ο蟪绦蛟O(shè)計(jì)方法概述 面向?qū)ο蟮某绦蛟O(shè)計(jì)方法概述 (續(xù) ) JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 6 ? 結(jié)構(gòu)化程序設(shè)計(jì) – 通常由若干個(gè)程序模塊組成,每個(gè)程序模塊都可以是子程序或函數(shù) – 數(shù)據(jù)和功能分離,代碼難于維護(hù)和復(fù)用 ? 面向?qū)ο蟪绦蛟O(shè)計(jì) – 基本組成單位是類 – 程序在運(yùn)行時(shí)由類生成對(duì)象,對(duì)象是面向?qū)ο蟪绦虻暮诵? – 對(duì)象之間通過發(fā)送消息進(jìn)行通信,互相協(xié)作完成相應(yīng)功能 面向?qū)ο蟮某绦蛟O(shè)計(jì)方法概述 (續(xù) ) 面向?qū)ο蟪绦蛟O(shè)計(jì)方法概述 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 7 抽象 ? 抽象 – 忽略問題中與當(dāng)前目標(biāo)無關(guān)的方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面 – 計(jì)算機(jī)軟件開發(fā)中所使用的抽象有 ?過程抽象 ?數(shù)據(jù)抽象 面向?qū)ο蟪绦蛟O(shè)計(jì)方法概述 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 8 ? 過程抽象 – 將整個(gè)系統(tǒng)的功能劃分為若干部分,強(qiáng)調(diào)功能完成的過程和步驟,而隱藏其具體的實(shí)現(xiàn) – 任何一個(gè)明確定義的功能操作都可被看作單個(gè)的實(shí)體,盡管這個(gè)操作實(shí)際上可能由一系列更低級(jí)的操作來完成 – 基于過程抽象的兩個(gè)標(biāo)準(zhǔn)程序設(shè)計(jì)技術(shù) ?過程分解 ?遞歸技術(shù) 抽象 (續(xù) ) —— 過程抽象 面向?qū)ο蟪绦蛟O(shè)計(jì)方法概述 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 9 ? 數(shù)據(jù)抽象 –將需要處理的數(shù)據(jù)和這些數(shù)據(jù)上的操作結(jié)合在一起,抽象成不同的抽象數(shù)據(jù)類型 –每個(gè)抽象數(shù)據(jù)類型既包含了數(shù)據(jù),也包含了針對(duì)這些數(shù)據(jù)的操作 –相對(duì)于過程抽象,數(shù)據(jù)抽象是更為合理的抽象方法 抽象 (續(xù) ) —— 數(shù)據(jù)抽象 面向?qū)ο蟪绦蛟O(shè)計(jì)方法概述 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 10 ?例: –鐘表 ?數(shù)據(jù) (屬性 ) –int Hour。 minute=newM 。 x = new Circle()。 String province1,province2。 String streetName。 = “102206。 ()。 (Circle 2 has circumference + circum2)。 int radius。 } public boolean fitsInside (Rectangle r) { return (2 * radius ) amp。 ? 其中 package1[.package2…] 表明包的層次,它對(duì)應(yīng)于文件目錄 ? classname則指明所要引入的類名 ? 如果要引入一個(gè)包中的所有類,則可以使用星號(hào)( *)來代替類名 類與對(duì)象 類的組織 —— 包的概念 (續(xù) ) JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 72 ? 類的訪問控制 –類的訪問控制只有 public( 公共類)及無修飾符(缺省類)兩種 –訪問權(quán)限符與訪問能力之間的關(guān)系如表 類與對(duì)象 類的訪問控制 類型 無修飾 public 同一包中的類 yes yes 不同包中的類 no yes JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 73 ? 類成員的訪問控制 – 公有 (public) ? 可以被其他任何對(duì)象訪問 (前提是對(duì)類成員所在的類有訪問權(quán)限 ) – 保護(hù) (protected) ? 只可被同一類及其子類的實(shí)例對(duì)象訪問 – 私有 (private) ? 只能被這個(gè)類本身訪問,在類外不可見 – 默認(rèn) (default) ? 僅允許同一個(gè)包內(nèi)的訪問;又被稱為“包( package)訪問權(quán)限” 類成員的訪問控制 類與對(duì)象 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 no yes 類成員的訪問控制 (續(xù) ) 類與對(duì)象 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 75 ? 對(duì)例 26中的 Circle類聲明進(jìn)行修改,給實(shí)例變量加上 private修飾符 public class Circle { static double PI = 。 } 類成員的訪問控制 (續(xù) ) —— get方法 類與對(duì)象 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 79 ? set方法 – 功能是修改屬性變量的值 – set方法名以“ set”開頭,后面是實(shí)例變量的名字 – 一般具有以下格式 public void setFieldName(fieldType paramName) { fieldName = paramName。 } ? 假設(shè)一個(gè)新帳號(hào)的初始余額可以為 0,則可增加一個(gè)帶有兩個(gè)參數(shù)的構(gòu)造方法 public BankAccount(String initName, int initAccountNumber) { ownerName = initName。 } void info() { prt(Tree is + height + feet tall)。 private float balance。 (Account number: + ())。 (Here is the account: + anAccount)。 } 構(gòu)造方法 (續(xù) ) —— JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 97 ? 內(nèi)存回收技術(shù) – 當(dāng)一個(gè)對(duì)象在程序中不再被使用時(shí),就成為一個(gè)無用對(duì)象 ? 當(dāng)前的代碼段不屬于對(duì)象的作用域 ? 把對(duì)象的引用賦值為空 – Java運(yùn)行時(shí)系統(tǒng) 通過 垃圾收集器 周期性地釋放無用對(duì)象所使用的內(nèi)存 – Java運(yùn)行時(shí)系統(tǒng) 會(huì)在對(duì)對(duì)象進(jìn)行自動(dòng)垃圾回收前,自動(dòng)調(diào)用對(duì)象的 finalize()方法 內(nèi)存回收技術(shù) 對(duì)象初始化和回收 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 98 ? 垃圾收集器 –自動(dòng)掃描對(duì)象的動(dòng)態(tài)內(nèi)存區(qū),對(duì)不再使用的對(duì)象做上標(biāo)記以進(jìn)行垃圾回收 –作為一個(gè)線程運(yùn)行 ?通常在系統(tǒng)空閑時(shí)異步地執(zhí)行 ?當(dāng)系統(tǒng)的內(nèi)存用盡或程序中調(diào)用 ()要求進(jìn)行垃圾收集時(shí),與系統(tǒng)同步運(yùn)行 內(nèi)存回收技術(shù) (續(xù) ) —— 垃圾收集器 對(duì)象初始化和回收 JAVA語言程序設(shè)計(jì) 清華大學(xué) 鄭莉 99 ? finalize()方法 – 在類 ,因此 Java中的每一個(gè)類都有該方法 – 用于釋放系統(tǒng)資源,如關(guān)閉打開的文件或 socket等 – 聲明格式 protected void finalize() throws throwable – 如果一個(gè)類需要釋放除內(nèi)存以外的資源,則需在類中重寫 finalize()方法 內(nèi)存回收技術(shù) (續(xù) ) —— finalize()方法 對(duì)象初始化和回收 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中不會(huì)發(fā)生內(nèi)存泄漏情況,但對(duì)于其它資源,則有產(chǎn)生泄漏的可能性 內(nèi)存回收技術(shù) (續(xù) ) —— 同 C和 C++的區(qū)別 對(duì)象初始化和回收 JAVA語言程序設(shè)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1