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

正文內(nèi)容

數(shù)據(jù)結(jié)構(gòu)與算法(java語(yǔ)言版)2-資料下載頁(yè)

2025-06-17 06:48本頁(yè)面
  

【正文】 及特定的和外界進(jìn)行互操作的方法。在這種情況下就需要使用繼承,可以定義一個(gè)新的類Student,然后向它添加功能。但是新的類可以重用 People 類中已有的成員變量和方法。抽象的說(shuō),Student 和 People 是一個(gè)明顯的“isa”關(guān)系:每個(gè)學(xué)生都是人?!癷sa”關(guān)系就是繼承的特點(diǎn)。在 Java 中使用關(guān)鍵字 extends 來(lái)實(shí)現(xiàn)繼承。例如下面的代碼定義了一個(gè)新的類 Student,它繼承了最初定義的 People 類:public class Student extends People{private String sId。 //學(xué)號(hào)//Constructorpublic Student() {this(,)。}public Student(String name,String id,String sId){super(name,id)。 = sId。}public void sayHello(){()。(I am a student of department of puter science.)。}//get amp。 set methodpublic String getSId(){return 。}public void setSId(String sId){ = sId。}}9 代碼中使用了關(guān)鍵字 super,super 關(guān)鍵字主要有兩個(gè)作用,一是調(diào)用父類的構(gòu)造方法,一是調(diào)用父類的方法。關(guān)鍵字 extends 表明使用它構(gòu)造出來(lái)的類是從一個(gè)現(xiàn)有的類衍生出來(lái)的。現(xiàn)有類被稱為父類,而新的類稱為子類。父類與子類相比并不具有更多的屬性和功能,事實(shí)上恰恰相反,子類比父類具有更多的屬性和功能?!癷sa”規(guī)則表明子類的每個(gè)對(duì)象都是父類的對(duì)象,例如每個(gè)學(xué)生都是人。因此,無(wú)論何時(shí)只要在程序中需要一個(gè)父類對(duì)象時(shí)都可以使用一個(gè)子類的對(duì)象來(lái)替代它,反過(guò)來(lái)則不行。例如,可以把子類的對(duì)象賦給父類變量:People p = new Student(Bob,0002,2006137129)。如果想要把對(duì)某個(gè)類的對(duì)象引用轉(zhuǎn)換為對(duì)另一個(gè)類的對(duì)象引用,需要用圓括號(hào)把目標(biāo)類名括起來(lái),然后放到需要轉(zhuǎn)換的對(duì)象引用之前。例如:Student s = (Student)p。當(dāng)然這種轉(zhuǎn)換并不是一定能夠完成,如果是不能完成的情況,程序在運(yùn)行時(shí)會(huì)拋出異常。為了使轉(zhuǎn)換在允許的情況進(jìn)行,可以使用 instanceof 關(guān)鍵字。例如:if ( p instanceof Student)Student s = (Student)p。在 Java 中有一個(gè)非常特殊的預(yù)定義類,那就是 Object 類。在 Java 中 Object 類是所有類的祖先,每個(gè)類都有 Object 類擴(kuò)展而來(lái)。在定義類時(shí)如果不指定父類,則 Java 會(huì)自動(dòng)把 Object類作為要定義類的父類。例如 People 類就是 Object 類的子類。因此可以使用 Object 類的變量引用任意類型的對(duì)象。例如:Object obj = new People(Jack,0001)。在 Java 中不支持多繼承。Java 對(duì)于多繼承大部分功能的實(shí)現(xiàn)是通過(guò)接口機(jī)制來(lái)完成的。 接口接口是 Java 實(shí)現(xiàn)多繼承的一種機(jī)制,一個(gè)類可以實(shí)現(xiàn)一個(gè)或多個(gè)接口。接口是一系列方法的聲明,是一些方法特征的集合,一個(gè)接口只有方法的特征沒(méi)有方法的實(shí)現(xiàn),因此這些方法可以在不同的地方被不同的類實(shí)現(xiàn),而這些實(shí)現(xiàn)可以具有不同的行為。簡(jiǎn)單的說(shuō)接口不是類,但是定義了一組對(duì)類的要求,實(shí)現(xiàn)接口的某些類要與接口一致。在 Java 中使用關(guān)鍵字 interface 來(lái)定義接口。例如:public interface Compare {public int pare(Object otherObj)。}Compare 接口定義了一種操作 pare,該操作應(yīng)當(dāng)完成與另一個(gè)對(duì)象進(jìn)行比較的功能。它假定某個(gè)實(shí)現(xiàn)這一接口的類的對(duì)象 x 在調(diào)用該方法時(shí),例如 x . pare(y),如果 x 小于 y,返回負(fù)數(shù),相等返回 0,否則返回正數(shù)。讓類實(shí)現(xiàn)一個(gè)接口需要使用關(guān)鍵字 implements,然后在類中實(shí)現(xiàn)接口所定義的方法。例如:public class Student extends People implements Compare{private String sId。 //學(xué)號(hào)//Constructor10 public Student() {this(,)。}public Student(String name,String id,String sId){super(name,id)。 = sId。}public void sayHello(){()。(I am a student of department of puter science.)。}//get amp。 set methodpublic String getSId(){return 。}public void setSId(String sId){ = sId。}//implements Compare interfacepublic int pare(Object otherObj){Student other = (Student)otherObj。return ()。}}//end of class代碼中 Student 類實(shí)現(xiàn)了 Compare 接口,并且實(shí)現(xiàn)了 pare 方法,這里假定通過(guò)兩個(gè)學(xué)生學(xué)號(hào)的字典順序完成對(duì)學(xué)生的比較,學(xué)號(hào)字典順序在前的學(xué)生小于學(xué)號(hào)字典順序在后的學(xué)生。需要注意的是在 Java 中接口不是類,因此不能使用 new 實(shí)例化接口。但是不過(guò)雖然不能通過(guò) new 構(gòu)造接口對(duì)象,但是還是可以聲明接口變量。并且只要類實(shí)現(xiàn)了接口,就可以在任何需要該接口的地方使用這個(gè)接口的對(duì)象。例如:Compare = new Student(Cary,0003,2006137101)。反之也可以將一個(gè)接口變量轉(zhuǎn)換為對(duì)某個(gè)類的對(duì)象的引用,不過(guò)此時(shí)要進(jìn)行強(qiáng)制轉(zhuǎn)換,并且不一定能夠完成,情況和從父類引用到子類引用的轉(zhuǎn)換是一樣的。例如:Student s = (Student) 。 異常對(duì)于程序運(yùn)行時(shí)碰到的異常情況,Java 使用了一種被稱為“異常處理”的機(jī)制來(lái)進(jìn)行處理。在 Java 中一個(gè)異常對(duì)象總是 Throwable 子類的實(shí)例。圖 13 是 Java 異常繼承層次結(jié)構(gòu)的圖示。11 ThrowableErrorExceptionRuntimeIOExceptionException圖 13 Java 異常層次結(jié)構(gòu)在 Java 程序設(shè)計(jì)中,我們關(guān)注于 Exception 這個(gè)分支體系,而 Exception 中一類是從RuntimeException 衍生出來(lái)的子類,以及不是從它衍生出來(lái)的其他異常類。一般來(lái)說(shuō)由編程導(dǎo)致的錯(cuò)誤會(huì)引起 RuntimeException,例如數(shù)組下標(biāo)越界、錯(cuò)誤的類型轉(zhuǎn)換、訪問(wèn)空指針等錯(cuò)誤會(huì)導(dǎo)致不同類型的 RuntimeException。在程序中可能會(huì)碰到任何標(biāo)準(zhǔn)異常都不能很好描述的異常情況。此時(shí),可創(chuàng)建自己的異常類,創(chuàng)建自己的異常只需要繼承 Exception 類或 Exception 的子類就可以了。在程序中如果碰到了異常的情況,可以有兩種方法來(lái)處理這個(gè)異常,一種是有方法本身捕獲這個(gè)異常并進(jìn)行相應(yīng)的處理,使用 try…catch 結(jié)構(gòu);另一種是將這個(gè)異常從方法中拋出,使用 throws 以及 throw 關(guān)鍵字。例如:public void method1(){try{//statement may cause exception……}catch(ExceptionType e){//deal with exception……}}或者例如:Public void method2() throws ExceptionType {……if (exception condition) throw instance of ExceptionType。……} Java 與指針盡管在 Java 中沒(méi)有顯式的使用指針并且也不允許程序員使用指針,而實(shí)際上對(duì)象的訪問(wèn)就是使用指針來(lái)實(shí)現(xiàn)的。一個(gè)對(duì)象會(huì)從實(shí)際的存儲(chǔ)空間的某個(gè)位置開(kāi)始占據(jù)一定數(shù)量的存12 儲(chǔ)體。該對(duì)象的指針就是一個(gè)保存了對(duì)象的存儲(chǔ)地址的變量,并且這個(gè)存儲(chǔ)地址就是對(duì)象在存儲(chǔ)空間中的起始地址。在許多高級(jí)語(yǔ)言中指針是一種數(shù)據(jù)類型,而在 Java 中是使用對(duì)象的引用來(lái)替代的。考慮前面我們定義的 People 類,以及下列語(yǔ)句:People p = null。 q = new People(Jack,0001)。這里創(chuàng)建了兩個(gè)對(duì)于對(duì)象引用的變量 p 和 q。變量 p 初始化為 null,null 是一個(gè)空指針,它不指向任何地方,也就是它不指向任何類的對(duì)象,因此 null 可以賦值給任何類的對(duì)象的引用。變量 q 是一個(gè)對(duì)于 People 類的實(shí)例的引用,操作符 new 的作用實(shí)際上是為對(duì)象開(kāi)辟足夠的內(nèi)存空間,而引用 p 是指向這一內(nèi)存空間地址的指針。為此請(qǐng)讀者考慮如下代碼的運(yùn)行結(jié)果:People p1 = new People(David,0004)。People p2 = p1。(Denny)。(())。這段代碼中對(duì) People 類的對(duì)象引用 p2 的 name 成員變量進(jìn)行了設(shè)置,使其值為字符串Denny。但是我們會(huì)發(fā)現(xiàn)在輸出 p1 的成員變量 name 時(shí)并不是輸出David,而是Denny。原因是 p1 與 p2 均是對(duì)對(duì)象的引用,在完成賦值語(yǔ)句 People p2 = p1。 后,p2 與 p1 指向同一存儲(chǔ)空間,因此對(duì)于 p2 的修改自然會(huì)影響到 s1。通過(guò)圖 14 可以清楚說(shuō)明這段代碼運(yùn)行的情況。People p1 = new People(David,0004)。p1David0004People p2 = p1。p1p2David0004(Denny)。p1p2Denny0004(())。輸出:Denny圖 14 兩個(gè)對(duì)象引用變量指向同一存儲(chǔ)空間請(qǐng)讀者繼續(xù)考慮以下代碼的運(yùn)行結(jié)果:People p1 = new People(David,0004)。People p2 = new People(David,0004)。(p1= = p2)。在這里雖然p1與p2的所有成員變量的內(nèi)容均相同,但是由于它們指向不同的存儲(chǔ)空間,13 因此,輸出語(yǔ)句輸出的結(jié)果為 false。圖 15 說(shuō)明了 p1 與 p2 的指向。People p1 = new People(David,0004)。p1David0004People p1 = new People(David,0004)。p1p2David0004David0004(p1= = p2)。輸出:false圖 15 p1 與 p2 指向不同存儲(chǔ)空間可見(jiàn)如果我們希望完成對(duì)象的拷貝,使用一個(gè)簡(jiǎn)單的賦值語(yǔ)句是無(wú)法完成的。要達(dá)到這一目的可以通過(guò)實(shí)現(xiàn) Cloneable 接口并重寫(xiě) clone 方法來(lái)完成。如果我們希望判斷兩個(gè)對(duì)象引用是否一致時(shí)可以覆蓋繼承自 Object 類的 equals 方法來(lái)實(shí)現(xiàn)。14 周鵬第二章 數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)這一章主要由兩部分內(nèi)容組成:即數(shù)據(jù)結(jié)構(gòu)和算法的基礎(chǔ)知識(shí)。在這一章中我們主要介紹數(shù)據(jù)結(jié)構(gòu)與算法的一些相關(guān)基本概念。使讀者了解什么是數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)研究的主要內(nèi)容是什么;同時(shí)使讀者了解什么是算法,以及如何評(píng)價(jià)一個(gè)算法的性能。 數(shù)據(jù)結(jié)構(gòu)人們?cè)谑褂糜?jì)算機(jī)解決客觀世界中存在的具體問(wèn)題時(shí),通常過(guò)程如下:首先通過(guò)對(duì)客觀世界的認(rèn)知形成印象和概念從而得到了信息,在此基礎(chǔ)上建立概念模型,它必須能夠如實(shí)地反映客觀世界中的事物以及事物間的聯(lián)系;根據(jù)概念模型將實(shí)際問(wèn)題轉(zhuǎn)化為計(jì)算機(jī)能夠理解的形式,然后設(shè)計(jì)程序;用戶通過(guò)人機(jī)交互界面與系統(tǒng)交流,使系統(tǒng)執(zhí)行相應(yīng)操作,最后解決實(shí)際的問(wèn)題。數(shù)據(jù)結(jié)構(gòu)主要與在上述過(guò)程中從建立概念模型到實(shí)現(xiàn)模型轉(zhuǎn)化并為后續(xù)程序設(shè)計(jì)提供基礎(chǔ)的內(nèi)容相關(guān)。它是用來(lái)反映一個(gè)概念模型的內(nèi)部構(gòu)成,即一個(gè)概念模型由那些成分?jǐn)?shù)據(jù)構(gòu)成,以什么方式構(gòu)成,呈現(xiàn)什么結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)主要是研究程序設(shè)計(jì)問(wèn)題中計(jì)算機(jī)的操作對(duì)象以及它們之間的關(guān)系和操作的學(xué)科。 基本概念在這一小節(jié)中首先介紹一些基本概念和術(shù)語(yǔ)。數(shù)據(jù)(data)是描述客觀事物的數(shù)值、字符以及能輸入機(jī)器且能被處理的各種符號(hào)集合。數(shù)據(jù)的含義非常廣泛,除了通常的數(shù)值數(shù)據(jù)、字符、字符串是數(shù)據(jù)以外,聲音、圖像等一切可以輸入計(jì)算機(jī)并能被處理的都是數(shù)據(jù)。例如除了表示人的姓名、身高、體重等的字符、數(shù)字是數(shù)據(jù),人的照片、指紋、三維模型、語(yǔ)音指令等也都是數(shù)據(jù)。數(shù)據(jù)元素(data element)是數(shù)據(jù)的基本單位,是數(shù)據(jù)集合的個(gè)體,在計(jì)算機(jī)程序中通常作為一個(gè)整體來(lái)進(jìn)行處理。例如一條描述一位學(xué)生的完整信息的數(shù)據(jù)記錄就是一個(gè)數(shù)據(jù)元素;空間中一點(diǎn)的三維坐標(biāo)也可以是一個(gè)數(shù)據(jù)元素。數(shù)據(jù)元素通常由若干個(gè)數(shù)據(jù)項(xiàng)組成,例如描述學(xué)生相關(guān)信息的姓名、性別、學(xué)號(hào)等都是數(shù)據(jù)項(xiàng);三維坐標(biāo)中的每一維坐標(biāo)值也是數(shù)據(jù)項(xiàng)。數(shù)據(jù)項(xiàng)具有原子性,是不可分割的最小單位。數(shù)據(jù)對(duì)象(data object)是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的子集。例如一個(gè)學(xué)校的所有學(xué)生的集合就是數(shù)據(jù)對(duì)象,空間中所
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1