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

正文內(nèi)容

java2面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)(中)ppt-在線瀏覽

2024-12-03 16:16本頁面
  

【正文】 ain( String args[] ) ? { classpath參數(shù) ? Time t = new Time()。 ? String output = ? Universal time is: + () + ? \nStandard time is: + ()。 ? ( 0 )。 Java編譯器嚴(yán)格按照 classpath和包名所指定的路徑尋找包。這點(diǎn)對(duì)初學(xué)者來說需要特別注意。從結(jié)構(gòu)上,接口有如下特點(diǎn)。 ? (2) 接口中定義的變量全是最終的靜態(tài)變量。 ? (4) 接口采用多重繼承機(jī)制,而不是采用類的單一繼承機(jī)制。如果需要多繼承關(guān)系,可以通過 Java語言中的接口實(shí)現(xiàn)。如果一個(gè)類包含任何抽象方法,包括直接的和繼承所得,則這個(gè)類必須是抽象的。抽象類強(qiáng)制要求它的所有子類重寫自己的方法以覆蓋抽象方法。就是說Cat 不只是一個(gè) Animal,還是一個(gè) Pet,除需要繼承 Animal 類,還期望能實(shí)現(xiàn) Pet 類。解決問題的方法是定義接口,并通過接口實(shí)現(xiàn)多繼承。 public用來指明任意一個(gè)類都可以調(diào)用此接口。 接口的定義 ? 2. 接口體 ? 接口體包含常量定義和方法定義兩部分。其格式如下: ? type NAME =value。但有些程序中為了使可讀性好,仍然寫明final static屬性。 ? 其中, returnType表示返回值類型,如果沒有返回值,則用關(guān)鍵字 void指明。入口參數(shù)可能有多個(gè),之間用逗號(hào)隔開;如果沒有入口參數(shù),則可省去這部分內(nèi)容。接口中所有的方法都默認(rèn)為是 abstract屬性。 ? 【 例 】 對(duì)接口中定義的方法進(jìn)行實(shí)現(xiàn) (例子詳見書 141~143頁 ) ? 運(yùn)行結(jié)果如圖 58所示。 Comparable 接口具有惟一的方法 pareTo(Object),其定義為: ? public interface Comparable{ ? public int pareTo(Object o)。這種全序關(guān)系采用類的自然排序規(guī)則。表 52為其中 8種基本數(shù)據(jù)類型的自然排序規(guī)則。 Comparable 接口 ? 表 52 基本數(shù)據(jù)類型的自然排序規(guī)則 回調(diào) ? 軟件模塊之間總是存在著一定的接口,通過接口形成相互調(diào)用關(guān)系。從調(diào)用方式上,可以把它們分為三類:同步調(diào)用、回調(diào)和異步調(diào)用,如圖 59所示,其中 A 表示客戶方, B表示服務(wù)方。回調(diào)是一種雙向調(diào)用模式,也就是說,服務(wù)方在被調(diào)用時(shí)也會(huì)調(diào)用客戶方。 異常及其處理 ? 什么是異常 ? 異常的層次結(jié)構(gòu) ? 異常的處理 異常及其處理 ? 對(duì)各種異常的處理是程序設(shè)計(jì)中要解決的重要問題。本節(jié)講述這種機(jī)制的思想,并結(jié)合具體例子講解 Java怎樣用 trycatchfinally語句實(shí)現(xiàn)這種機(jī)制。 什么是異常 ? 用任何一種計(jì)算機(jī)語言設(shè)計(jì)的程序在運(yùn)行時(shí)都可能出現(xiàn)各種錯(cuò)誤,常見的錯(cuò)誤如除數(shù)為 0、文件不存在、文件不能打開、數(shù)組下標(biāo)超過界限、內(nèi)存不夠用等。 ? 由計(jì)算機(jī)系統(tǒng)本身直接檢測(cè)程序錯(cuò)誤,遇到錯(cuò)誤時(shí)使程序終止運(yùn)行。 ? 在 Java程序中,異常一般由以下兩種原因引起。 ? (2) 程序員在程序中使用了 throw語句引起的異常。 Throwable是所有異常類的父類,它是 Object的直接子類。 ? 在系統(tǒng)包 、 、 常類。 異常的層次結(jié)構(gòu) ? 1. 不可檢測(cè)的標(biāo)準(zhǔn)異常類 ? (1) ? ArithmeticException:表示遇到了異常的算術(shù)問題,例如被 0整除。 ? ClassCastException:試圖把一個(gè)對(duì)象的引用強(qiáng)制轉(zhuǎn)換為不合適的類型。 ? NullPointerException:試圖使用一個(gè)空的對(duì)象引用。 異常的層次結(jié)構(gòu) ? (2) ? EmptyStackException:試圖訪問一個(gè)空堆棧中的元素。 ? 2. 可檢測(cè)的標(biāo)準(zhǔn)異常類 ? (1) ? ClassNotFoundException:具有指定名字的類或接口沒有被發(fā)現(xiàn)。 ? IllegalAccessException:試圖用給出了完整的路徑信息的字符串加載一個(gè)類,但是當(dāng)前正在執(zhí)行的方法無法訪問指定類,因?yàn)樵擃惒皇?public類型或在另一個(gè)包中。 ? InterruptedException:當(dāng)前的線程正在等待,而另一個(gè)線程使用了 Thread的 interrupt方法中斷了當(dāng)前線程。 ? EOFException:在輸入操作正常結(jié)束前遇到了文件結(jié)束符。 ? InterruptIOException:當(dāng)前線程正在等待 I/O操作完成,而另一個(gè)線程使用 Thread的 interrupt方法中斷了當(dāng)前線程。如果發(fā)生了異常,就交由 catch語句處理。如果 catch語句參數(shù)中聲明的異常類與拋出的異常類相同,或者是它的父類, catch語句就可以捕獲任何這種異常類的對(duì)象。這樣即使發(fā)生的異常與 catch所能捕獲的異常不匹配也會(huì)執(zhí)行finally子句。 ? public class CatchDemo{ ? public static void main(String args[]) ? { ? (這是一個(gè)異常處理的例子 \n)。 ? i/=0。 ? } ? finally{ ? (finally語句被執(zhí)行 )。 ? 圖 510 運(yùn)行結(jié)果 (例 ) 異常的處理 ? 1. 異常的捕獲 ? 在 ,已經(jīng)用了 trycatchfinally語句塊,下面介紹 trycatchfinally語句各部分的用法。 ? try{...} ? catch( ExceptionName1 e ){...} ? catch( ExceptionName2 e ){...} ? finally{...} ? (1) try ? 捕獲異常的第一步是用 try{…} 選定捕獲異常的范圍,由 try所限定的代碼塊中的語句在執(zhí)行過程中可能會(huì)生成異常對(duì)象并拋出。 catch語句只需要一個(gè)形式參數(shù)指明它所能夠捕獲的異常類型,這個(gè)類必須是 Throwable的子類,運(yùn)行時(shí)系統(tǒng)通過參數(shù)值把被拋出的異常對(duì)象傳遞給catch塊。不論在 try代碼塊中是否發(fā)生了異常事件, finally塊中的語句都會(huì)被執(zhí)行。 ? 【 例 】 對(duì)異常進(jìn)行拋出舉例,程序如下。 ? (\na=+a)。 ? int c[]={1}。 ? } ? } 創(chuàng)建自定義的異常 ? Java提供的一些異常有時(shí)候不能滿足編程的需求,比如規(guī)定用戶輸入數(shù)據(jù)的范圍在 20到 30之間,但是 Java并沒有這個(gè)方面的異常。 ? 在 Java中進(jìn)行自定義異常時(shí),自定義異常類必須是 Throwable的直接或間接子類。它通過繼承 Exception類而繼承 Throwable,即間接繼承 Throwable。 ? class OutBoundsException extends Exception ? { ? OutBoundsException(String mes) ? { ? //調(diào)用超類的構(gòu)造函數(shù) ? super(mes)。 ? if(n30||n20) ? throw new OutBoundsException(the number is out of bound!!)。 ? } ? } ? class Test 創(chuàng)建自定義的異常 ? { ? public static void main(String []args) ? { ? try ? { ? check c=new check()。 ? ((25))。 ? ((5))。 ? } ? } ? } ? 運(yùn)行結(jié)果如圖 513所示。 ? (2) 類的聲明“ public class Test extends Applet implements Runable{}”中,定義的類名是 __________,其父類是 __________;實(shí)現(xiàn)了 __________接口。 ? 2. 選擇題 ? (1) 接口是 Java面向?qū)ο蟮膶?shí)現(xiàn)機(jī)制之一,以下說法正確的是 ( )。 ? A. 接口定義中的方法都只有定義沒有實(shí)現(xiàn) ? B. 接口定義中的變量都必須寫明 final和 static ? C. 如果一個(gè)接口由多個(gè)類來實(shí)現(xiàn),則這些類在實(shí)現(xiàn)該接口中的方法時(shí)應(yīng)采用統(tǒng)一 的代碼 ? D. 如果一個(gè)類實(shí)現(xiàn)一個(gè)接口,則必須實(shí)現(xiàn)該接口中的所有方法,但方法未必聲明 為 public. 課 后 練 習(xí) ? 3. 判斷題 ? (1) 對(duì)每個(gè)異常,只能進(jìn)行捕獲。 ( ) ? 4. 簡(jiǎn)答題 ? (1) 按照 Java習(xí)慣,程序員應(yīng)該如何組織和命名包?如何布局源文件? ? (2) 設(shè)置 classpath 參數(shù)的作用是什么? ? 5. 操作題 ? (1) 根據(jù)如圖 514所示的 UML圖設(shè)計(jì)完成編碼 ,使輸出結(jié)果符合樣例: ? Fish swim in their tanks all day. ? Fluffy likes to play with string. ? Spiders catch flies in their webs to eat. ? This animal walks on 8 legs. ? This animal walks on 0 legs. ? Fish, of course, can39。 they swim. 課 后 練 習(xí) ? (2) 編寫 ,定義點(diǎn)的數(shù)據(jù)結(jié)構(gòu)為兩個(gè)雙精度數(shù) [x,y]并重寫 toString 方法,通過字符串連接運(yùn)算,使輸出點(diǎn)形式為: ? start point is start[x,y] ? end point is end[x,y] ? (3) 編寫 ,實(shí)例化 MyPoint 為 start 和end,輸出 start 和 end 的狀態(tài)。 課 后 練 習(xí) ? 圖 514 UML圖 Q amp。 ? 因此可編寫有幾條執(zhí)行路徑的程序,使得程序能夠同時(shí)執(zhí)行多個(gè)任務(wù),借此實(shí)現(xiàn)多線程運(yùn)行。 ? 本章主要介紹: Java中的線程作用機(jī)制 、 線程的實(shí)現(xiàn)方法 、 線程的控制和線程的同步與死鎖 。但是在 Java中,線程的作用機(jī)制又是如何工作的呢?本節(jié)將重點(diǎn)介紹 Java中的線程作用機(jī)制。 ? 進(jìn)程是程序的一次動(dòng)態(tài)執(zhí)行過程。即一個(gè)進(jìn)程既包括其所要執(zhí)行的指令,也包括執(zhí)行指令所需的任何系統(tǒng)資源,如 CPU、內(nèi)存空間等。 程序、進(jìn)程和線程 ? 線程又是一個(gè)抽象的概念,它包含了一個(gè)計(jì)算機(jī)執(zhí)行傳統(tǒng)程序時(shí)所做的每一件事情。一個(gè)進(jìn)程中的所有線程共享該進(jìn)程的狀態(tài),它們存儲(chǔ)在相同的內(nèi)存空間中,共享程序的代碼和數(shù)據(jù)。 ? 多線程是指同一個(gè)應(yīng)用程序中有多個(gè)順序流同時(shí)執(zhí)行。瀏覽器就是一個(gè)典型的多線程例子。對(duì)于應(yīng)用程序,主線程是 main()方法執(zhí)行的路徑。 線程的生命周期 ? 圖 61 線程的狀態(tài)轉(zhuǎn)換 線程的生命周期 ? 從圖 61中可以看出:一個(gè)線程從創(chuàng)建到消亡的整個(gè)生命周期中,總是處于下面 5個(gè)狀態(tài)中的某個(gè)狀態(tài)。創(chuàng)建一個(gè)新的線程對(duì)象可以用下面的語句實(shí)現(xiàn): ? Thread thread=new Thread()。 線程的生命周期 ? 2. 就緒狀態(tài) ? 該狀態(tài)又可稱為可運(yùn)行狀態(tài)。 Start()方法產(chǎn)生了線程運(yùn)行需要的系統(tǒng)資源。 線程的生命周期 ? 3. 運(yùn)行狀態(tài) ? 當(dāng)處于就緒狀態(tài)的線程被調(diào)度并獲得 CPU資源時(shí),使進(jìn)入運(yùn)行狀態(tài)。當(dāng)線程對(duì)象被調(diào)度執(zhí)行時(shí),它將自動(dòng)調(diào)用其 run()方法并從第一條語句開始順次執(zhí)行。當(dāng)發(fā)生下列情況之一時(shí),線程就進(jìn)入阻塞狀態(tài)。 ? (2) 線程調(diào)用 wait()方法等待一個(gè)條件變量。 ? (4) 調(diào)用了 suspend()掛起方法。另外線程還可能被提前強(qiáng)制性消亡。 線程的優(yōu)先級(jí)及其調(diào)度 ? 線程被創(chuàng)建之后,每個(gè) Java線程的優(yōu)先級(jí)都在(常量 1)和 (常量 10)的范圍之內(nèi)。可以用方法 int getPriority()來獲得線程的優(yōu)先級(jí),同時(shí)也可以用方法 void setPriority(int p)在線程被創(chuàng)建后改變線程的優(yōu)先級(jí)。 線程的優(yōu)先級(jí)及其調(diào)度 ? 【 例 】 綜合使用線程的方法來控制線程的工作舉例,程序如下。 ? protected int iterations。 ?
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1