JAVA語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)課后習(xí)習(xí)題答案_第1頁(yè)
JAVA語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)課后習(xí)習(xí)題答案_第2頁(yè)
JAVA語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)課后習(xí)習(xí)題答案_第3頁(yè)
JAVA語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)課后習(xí)習(xí)題答案_第4頁(yè)
JAVA語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì)課后習(xí)習(xí)題答案_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余31頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第1章 面向?qū)ο筌浖_(kāi)發(fā)概述1簡(jiǎn)述面向過(guò)程問(wèn)題求解和面向?qū)ο髥?wèn)題求解的異同。試列舉出面向?qū)ο蠛兔嫦蜻^(guò)程的編程語(yǔ)言各兩種。答:面向過(guò)程問(wèn)題求解,以具體的解題過(guò)程為研究和實(shí)現(xiàn)的主體,其思維特點(diǎn)更接近于計(jì)算機(jī);面向?qū)ο蟮膯?wèn)題求解,則是以“對(duì)象”為主體,“對(duì)象”是現(xiàn)實(shí)世界的實(shí)體或概念在計(jì)算機(jī)邏輯中的抽象表示,更接近于人的思維特點(diǎn)。面向過(guò)程的編程語(yǔ)言:C,Pascal, Foratn。面向?qū)ο蟮木幊陶Z(yǔ)言:C+, Java,C#。2簡(jiǎn)述對(duì)象、類(lèi)和實(shí)體及它們之間的相互關(guān)系。嘗試從日常接觸到的人或物中抽象出對(duì)象的概念。答:面向?qū)ο蠹夹g(shù)中的對(duì)象就是現(xiàn)實(shí)世界中某個(gè)具體的物理實(shí)體在計(jì)算機(jī)邏輯中的映射和體現(xiàn)。類(lèi)是同種

2、對(duì)象的集合與抽象。類(lèi)是一種抽象的數(shù)據(jù)類(lèi)型,它是所有具有一定共性的對(duì)象的抽象,而屬于類(lèi)的某一個(gè)對(duì)象則被稱(chēng)為是類(lèi)的一個(gè)實(shí)例,是類(lèi)的一次實(shí)例化的結(jié)果。如果類(lèi)是抽象的概念,如“電視機(jī)”,那么對(duì)象就是某一個(gè)具體的電視機(jī),如“我家那臺(tái)電視機(jī)”。3對(duì)象有哪些屬性什么是狀態(tài)什么是行為二者之間有何關(guān)系設(shè)有對(duì)象“學(xué)生”,試為這個(gè)對(duì)象設(shè)計(jì)狀態(tài)與行為。答:對(duì)象都具有狀態(tài)和行為。對(duì)象的狀態(tài)又稱(chēng)為對(duì)象的靜態(tài)屬性,主要指對(duì)象內(nèi)部所包含的各種信息,也就是變量。每個(gè)對(duì)象個(gè)體都具有自己專(zhuān)有的內(nèi)部變量,這些變量的值標(biāo)明了對(duì)象所處的狀態(tài)。行為又稱(chēng)為對(duì)象的操作,它主要表述對(duì)象的動(dòng)態(tài)屬性,操作的作用是設(shè)置或改變對(duì)象的狀態(tài)。學(xué)生的狀態(tài):姓

3、名、性別、年齡、所在學(xué)校、所在系別、通訊地址、電話號(hào)碼、入學(xué)成績(jī)等;學(xué)生的行為:自我介紹、入學(xué)注冊(cè)、選課、參加比賽等。4對(duì)象間有哪三種關(guān)系對(duì)象“班級(jí)”與對(duì)象“學(xué)生”是什么關(guān)系對(duì)象“學(xué)生”與對(duì)象“大學(xué)生”是什么關(guān)系答:對(duì)象間可能存在的關(guān)系有三種:包含、繼承和關(guān)聯(lián)。對(duì)象“班級(jí)”與對(duì)象“學(xué)生”是包含關(guān)系。對(duì)象“學(xué)生”與對(duì)象“大學(xué)生”是繼承關(guān)系。5有人說(shuō)“父母”和“子女”之間是繼承的關(guān)系。這種說(shuō)法是否正確為什么答:“父母”和“子女”之間不是面向?qū)ο笠饬x上的“繼承”關(guān)系。因?yàn)檫@里的繼承關(guān)系是“is a”的關(guān)系,“男人”與“人”之間可以說(shuō)是繼承關(guān)系。6面向?qū)ο蟮能浖_(kāi)發(fā)包括哪些過(guò)程O(píng)OA模型包括哪三個(gè)層次

4、OOD模型在OOA模型的基礎(chǔ)上引入了哪些工作答:面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程可以大體劃分為面向?qū)ο蟮姆治?Object Oriented analysis,OOA)、面向?qū)ο蟮脑O(shè)計(jì)(Object oriented design,OOD)、面向?qū)ο蟮膶?shí)現(xiàn)(Object oriented programming,OOP)三個(gè)階段。面向?qū)ο蟮姆治龅闹饕饔檬敲鞔_用戶(hù)的需求,并用標(biāo)準(zhǔn)化的面向?qū)ο蟮哪P鸵?guī)范地表述這一需求,最后將形成面向?qū)ο蟮姆治瞿P?。面向?qū)ο蟮脑O(shè)計(jì)將在OOA模型的基礎(chǔ)上引入界面管理、任務(wù)管理和數(shù)據(jù)管理三部分的內(nèi)容。7面向?qū)ο蟮某绦蛟O(shè)計(jì)方法有哪些優(yōu)點(diǎn)答:由于對(duì)象的概念能夠以更接近實(shí)際問(wèn)題的原貌

5、和實(shí)質(zhì)的方式來(lái)表述和處理這些問(wèn)題,所以面向?qū)ο蟮能浖_(kāi)發(fā)方法比以往面向過(guò)程的方法有更好的靈活性、可重用性和可擴(kuò)展性,使得上述“分析設(shè)計(jì)實(shí)現(xiàn)”的開(kāi)發(fā)過(guò)程也更加高效、快捷。第2章 Java概述1簡(jiǎn)述Java編譯和運(yùn)行的基本方法。答:編譯可以使用JDK中的工具。例如:javac 運(yùn)行Java程序則可以使用JDK提供的解釋器是。例如:java HelloWorldApp2下載并安裝JDK軟件包,3嘗試查看其中的JDK文檔。答: Java編程的基本工具包是JDK(Java Development Kit)。JDK是Sun公司免費(fèi)提供的開(kāi)發(fā)、運(yùn)行Java程序的基本軟件,它可以在Windows及Unix兩種

6、平臺(tái)下使用。常用的版本是, ,等??梢詮木W(wǎng)站下載較新的版本,如(也稱(chēng)為)。JDK文檔也可以從網(wǎng)上下載。3編寫(xiě)一個(gè)Java Application,利用JDK軟件包中的工具編譯并運(yùn)行這個(gè)程序,在屏幕上輸出“Welcome to Java World!”。答:見(jiàn)程序。public class Ex2_3public static void main(String args)"Welcom to java vorld");4編寫(xiě)一個(gè)Java Applet,使之能夠在瀏覽器中顯示“Welcome to Java Applet World!”的字符串信息。答:見(jiàn)程序。import .

7、*;import .*;public class Ex2_4 extends Applet ;public class Ex2_6 public static void main(String args) String s = ""double c = 0;double d = 0;tryBufferedReader in = new BufferedReader(new InputStreamReader( ) );"請(qǐng)輸入一個(gè)數(shù): ");s = ();c = ( s );"請(qǐng)輸入另一個(gè)數(shù): ");s = ();d = ( s );

8、catch(IOException e)"這兩個(gè)數(shù)的積為: " + (c * d) );7編寫(xiě)一個(gè)程序,從兩個(gè)文本框中接收兩個(gè)數(shù)字,然后計(jì)算這兩個(gè)數(shù)的積。答:見(jiàn)程序。import .*;import .*;import class Ex2_7 extends AppletTextField in1 = new TextField(10);TextField in2 = new TextField(10);Button btn = new Button("求兩個(gè)數(shù)的積");Label out = new Label("用于顯示結(jié)果的標(biāo)簽"

9、;);public void init()setLayout( new FlowLayout() );add( in1 );add( in2 );add( btn );add( out );( new BtnActionAdapter() );class BtnActionAdapter implements ActionListenerpublic void actionPerformed( ActionEvent e )String s1 = ();double d1 = ( s1 );String s2 = ();double d2 = ( s2 );double result = d1

10、 * d2;( d1 + "X" + d2 +"=" + result);8常用的集成開(kāi)發(fā)工具有哪些各有什么特點(diǎn)答:常用的集成開(kāi)發(fā)工具包括:Borland公司出品的Jbuilder, Sun公司出品的Java Workshop, IBM公司的Visual Age for Java,Oracle公司的Java Develop,等等。另外,Symantec公司的Visual Café 也是著名的Java開(kāi)發(fā)工具。近來(lái),Eclipse也是使用很廣的集成開(kāi)發(fā)工具。第3章 數(shù)據(jù)運(yùn)算、流控制、數(shù)組1簡(jiǎn)述Java程序的構(gòu)成。如何判斷主類(lèi)下面的程序有幾處錯(cuò)誤如

11、何改正,這個(gè)程序的源代碼應(yīng)該保存成什么名字的文件 public class MyJavaClass public static void main() printIn("Am I wrong"); printIn("程序結(jié)束。"); 答:一個(gè)復(fù)雜的程序可由一個(gè)至多個(gè)Java源程序文件構(gòu)成,每個(gè)文件中可以有多個(gè)類(lèi)定義。一般的Java源程序文件由以下三部分組成:package 語(yǔ)句; (0句1句)import 語(yǔ)句; (0句多句)類(lèi)定義 (1個(gè)多個(gè)類(lèi)定義)這里所說(shuō)的主類(lèi)是指程序中含有main()方法的類(lèi)。上面的示例程序中的錯(cuò)誤主要在于拼寫(xiě),如:點(diǎn)及分號(hào)應(yīng)該用

12、西文的;printIn中的大寫(xiě)字母I應(yīng)改為小寫(xiě)字母l;另外,main()方法應(yīng)該帶參數(shù),改為: public static void main(String argvs)import .*;import .*;import class Ex2_7 extends AppletTextField in1 = new TextField(10);TextField in2 = new TextField(10);Button btn = new Button("求兩個(gè)數(shù)的積");Label out = new Label("用于顯示結(jié)果的標(biāo)簽");publi

13、c void init()setLayout( new FlowLayout() );add( in1 );add( in2 );add( btn );add( out );( new BtnActionAdapter() );class BtnActionAdapter implements ActionListenerpublic void actionPerformed( ActionEvent e )String s1 = ();double d1 = ( s1 );String s2 = ();double d2 = ( s2 );double result = d1 * d2;(

14、d1 + "X" + d2 +"=" + result);2Java有哪些基本數(shù)據(jù)類(lèi)型寫(xiě)出int型所能表達(dá)的最大、最小數(shù)據(jù)。答:Java中定義了4類(lèi)/8種基本數(shù)據(jù)類(lèi)型:(1)邏輯型boolean(2)整數(shù)型byte, short, int, long(3)浮點(diǎn)數(shù)型float, double(4)字符型char其中整型int占4個(gè)字節(jié),其范圍為-。3Java的字符采用何種編碼方案有何特點(diǎn)寫(xiě)出五個(gè)常見(jiàn)的轉(zhuǎn)義符。答:char(字符型)是用Unicode編碼表達(dá)的字符,在內(nèi)存中占兩個(gè)字節(jié)。由于Java的字符類(lèi)型采用了一種新的國(guó)際標(biāo)準(zhǔn)編碼方案Unicode編碼,這

15、樣便于東方字符和西方字符處理,這樣與其他語(yǔ)言相比,Java處理多語(yǔ)種的能力大大加強(qiáng)。常見(jiàn)的轉(zhuǎn)義符,如:'單引號(hào)字符''雙引號(hào)字符反斜杠字符r回車(chē)n換行4 Java對(duì)標(biāo)識(shí)符命名有什么規(guī)定,下面這些標(biāo)識(shí)符哪些是對(duì)的哪些是錯(cuò)的錯(cuò)在哪里(1)MyGame (2)_isHers (3)2JavaProgram (4)Java-Visual-Machine (5)_$abc答:標(biāo)識(shí)符可以由編程者自由指定,但是需要遵循定的語(yǔ)法規(guī)定。標(biāo)識(shí)符要滿足如下的規(guī)定:(1)標(biāo)識(shí)符可以由字母、數(shù)字和下劃線(_)、美元符號(hào)($)組合而成。(2)標(biāo)識(shí)符必須以字母、下劃線或美元符號(hào)開(kāi)頭,不能以數(shù)字開(kāi)頭。

16、在實(shí)際應(yīng)用標(biāo)識(shí)符時(shí),應(yīng)該使標(biāo)識(shí)符能一定程度上反映它所表示的變量、常量、對(duì)象或類(lèi)的意義,這樣程序的可讀性會(huì)更好。題中的標(biāo)識(shí)符中的(3)不對(duì),因?yàn)橛脭?shù)字開(kāi)頭了,(4)也不對(duì),因?yàn)槠渲杏昧藴p號(hào)。5什么是常量什么是變量字符變量與字符串常量有何不同答:常量是在程序運(yùn)行的整個(gè)過(guò)程中保持其值不改變的量。變量是在程序的運(yùn)行過(guò)程中數(shù)值可變的數(shù)據(jù),通常用來(lái)記錄運(yùn)算中間結(jié)果或保存數(shù)據(jù)。字符變量中存放一個(gè)字符,字符串常量中存放一串字符。6什么是強(qiáng)制類(lèi)型轉(zhuǎn)換在什么情況下需要用到強(qiáng)制類(lèi)型轉(zhuǎn)換答:強(qiáng)制類(lèi)型的基本方式是指用以下方式顯式地進(jìn)行數(shù)據(jù)類(lèi)型的轉(zhuǎn)換:(類(lèi)型)表達(dá)式一般地說(shuō),在賦值運(yùn)算符兩側(cè)的類(lèi)型不一致的情況下,則需要進(jìn)

17、行自動(dòng)或強(qiáng)制類(lèi)型轉(zhuǎn)換。變量從占用內(nèi)存較少的短數(shù)據(jù)類(lèi)型轉(zhuǎn)化成占用內(nèi)存較多的長(zhǎng)數(shù)據(jù)類(lèi)型時(shí),可以不做顯式的類(lèi)型轉(zhuǎn)換,Java會(huì)自動(dòng)轉(zhuǎn)換;而將變量從較長(zhǎng)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換成較短的數(shù)據(jù)類(lèi)型時(shí),則必須做強(qiáng)制類(lèi)型轉(zhuǎn)換。7Java有哪些算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符和賦值運(yùn)算符試列舉單目和三目運(yùn)算符。答:在Java中,按照運(yùn)算符功能來(lái)分,基本的運(yùn)算符有下面幾類(lèi):1算術(shù)運(yùn)算符(+,-,*,/,%,+,-)2關(guān)系運(yùn)算符(>,<,>=,<=,=,!=)3布爾邏輯運(yùn)算符(!,&&,|,&,|)4位運(yùn)算符(>>,<<,>>&g

18、t;,&,|,)5賦值運(yùn)算符(=,及其擴(kuò)展賦值運(yùn)算符如+=)6條件運(yùn)算符( :)7其他 (包括分量運(yùn)算符·,下標(biāo)運(yùn)算符 ,實(shí)例運(yùn)算符instanceof,內(nèi)存分配運(yùn)算符new,強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符 (類(lèi)型),方法調(diào)用運(yùn)算符 () 等)其中,單目運(yùn)算符如-,!,而三目運(yùn)算符只有一個(gè),即條件運(yùn)算符(: )。8編寫(xiě)一個(gè)字符界面的Java Application程序,接受用戶(hù)輸入的一個(gè)浮點(diǎn)數(shù),把它的整數(shù)部分和小數(shù)部分分別輸出。答:見(jiàn)程序。/* 原來(lái)的程序public class MyJavaClass public static void main() printIn("Am

19、 I wrong"); printIn("程序結(jié)束。"); */public class Ex3_1 public static void main(String args) "Am I wrong"); "程序結(jié)束。");9編寫(xiě)一個(gè)字符界面的Java Application程序,接受用戶(hù)輸入的10個(gè)整數(shù),比較并輸出其中的最大值和最小值。答:見(jiàn)程序。import .*;public class Ex3_9 public static void main(String args) int N = 10;int a = new

20、intN; ;public class Ex3_10 public static void main(String args) char min = 'uffff'"請(qǐng)輸入一串字符,以#結(jié)束:");while( true )char c = ' 'tryc = (char) catch(IOException e)if( c = '#' ) break;if( min > c ) min = c;"n其中最小的字符是: " + min );11結(jié)構(gòu)化程序設(shè)計(jì)有哪三種基本流程分別對(duì)應(yīng)Java中的哪些語(yǔ)句

21、答:任何程序都可以且只能由三種基本流程結(jié)構(gòu)構(gòu)成,即順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)直接書(shū)寫(xiě),分支結(jié)構(gòu)用if及switch語(yǔ)句書(shū)寫(xiě),循環(huán)結(jié)構(gòu)用for、while及do語(yǔ)句來(lái)書(shū)寫(xiě)。12編寫(xiě)一個(gè)Java程序,接受用戶(hù)輸入的一個(gè)l-12之間的整數(shù)(如果輸入的數(shù)據(jù)不滿足這個(gè)條件,則要求用戶(hù)重新輸入),利用switch語(yǔ)句輸出對(duì)應(yīng)月份的天數(shù)。答:見(jiàn)程序。import .*;public class Ex3_12 public static void main(String args) tryBufferedReader in = new BufferedReader(new InputStreamR

22、eader( ) );int a = 0;do"請(qǐng)輸一個(gè)112的整數(shù): ");String s = ();a = ( s );while( a <1 | a > 12 );switch( a )case 1: "一月"); break;case 2: "二月"); break;case 3: "三月"); break;case 4: "四月"); break;case 5: "五月"); break;case 6: "六月"); break;c

23、ase 7: "七月"); break;case 8: "八月"); break;case 9: "九月"); break;case 10: "十月"); break;case 11: "十一月"); break;case 12: "十二月"); break;default: break;catch(IOException e)13在一個(gè)循環(huán)中使用break,continue和return語(yǔ)句有什么不同的效果答:break是結(jié)束循環(huán);continue是直接進(jìn)行下一次循環(huán);re

24、turn則是結(jié)束整個(gè)函數(shù)的調(diào)用。14編寫(xiě)圖形界面下的Java Applet程序,接受用戶(hù)輸入的兩個(gè)數(shù)據(jù)為上、下限,然后10個(gè)一行輸出上、下限之間的所有素?cái)?shù)。import .*;import .*;import class Ex3_14 extends AppletTextField in1 = new TextField(10);TextField in2 = new TextField(10);Button btn = new Button("求兩個(gè)數(shù)之間的素?cái)?shù)");TextArea out = new TextArea(10,100); ;public class Ex

25、3_15 public static void main(String args) tryBufferedReader in = new BufferedReader(new InputStreamReader( ) );"請(qǐng)輸入一個(gè)正整數(shù): ");String s = ();int a = ( s ); a + "的所有素因子包括: ");for( int i=2; i<=a; i+ )if( a%i=0 && isPrime(i) ) i );catch(IOException e)public static boolean i

26、sPrime( int a );public class Ex3_18 public static void main(String args) int N = 100;int a = new intN; for( int i=0; i<N; i+ ) ai=(int) ()*100); ;public class Ex3_19 public static void main(String args) int N = 12;boolean a = new booleanN; ;public class Ex3_20 public static void main(String args)

27、 int N = 100;boolean a = new booleanN+1;for( int i=0; i<=N; i+ ) ai=true;for( int i=2; i<=N; i+ )for( int j=2*i; j<=N; j += i )aj = false;for( int i=2; i<=N; i+ )if( ai ) i );第4章 類(lèi)、包和接口1使用抽象和封裝有哪些好處答:抽象可以提供事物的本質(zhì)特征。封裝(Encapsulation)是這樣一種編程機(jī)制,它把代碼和其操作的數(shù)據(jù)捆綁在一起,從而防止了外部對(duì)數(shù)據(jù)和代碼的干擾和濫用,保證了數(shù)據(jù)和代碼的安

28、全性。2編寫(xiě)一個(gè)Java程序片斷定義一個(gè)表示學(xué)生的類(lèi)student,包括域“學(xué)號(hào)”、”班號(hào)”、“姓名”、“性別”、“年齡”;方法“獲得學(xué)號(hào)”、“獲得班號(hào)”、“獲得性別”、“獲得年齡”、“修改年齡”。class public class exercise7 public static void main(String args)Student stu = new Student("Student","200345",18,"2班");class StudentprivateString stuNumber;privateString s

29、tuClass;privateString stuName;privateint stuAge;Student(String name,String number, int age, String cls)stuName = name;stuNumber = number;stuClass = cls;stuAge = age;public String getStuNumber()return stuNumber;publicString getStuClass()return stuClass;publicString getStuName()return stuName;publicin

30、t getStuAge()return stuAge;publicvoid setStuAge(int age)stuAge = age;public String toString()String infor = "學(xué)生姓名:"+ getStuName()+"n"+ "學(xué)生年齡:"+ getStuAge()+"n"+ "學(xué)生班級(jí):"+getStuClass()+"n"+ "學(xué)生學(xué)號(hào):"+getStuNumber()+"n"return

31、 infor;3為student類(lèi)定義構(gòu)造方法初始化所有的域,增加一個(gè)方法public String toString()把Sttldent類(lèi)對(duì)象的所有域信息組合成一個(gè)字符串。編寫(xiě)Application程序檢驗(yàn)新增的功能。答:見(jiàn)程序。class Ex4_3public static void main(String args) Student s = new Student( "09918076", "軟件專(zhuān)業(yè)班","李明", true, 18 ); s );class Studentkg2.pkg3;由于Java編譯器為每個(gè)類(lèi)生成一

32、個(gè)字節(jié)碼文件,且文件名與public的類(lèi)名相同,因此同名的類(lèi)有可能發(fā)生沖突。這時(shí)就需要?jiǎng)?chuàng)建包。22如何引用包中的某個(gè)類(lèi)如何引用整個(gè)包如果編寫(xiě)Java Applet程序時(shí)想把整個(gè)javaapplet包都加載,則應(yīng)該怎么做答:為了能使用Java中已提供的類(lèi),我們需要用import語(yǔ)句來(lái)引入所需要的類(lèi)。import語(yǔ)句的格式為:import package1.package2. (classname |*);其中package1.package2表明包的層次,與package語(yǔ)句相同,它對(duì)應(yīng)于文件目錄,classname則指明所要引入的類(lèi),如果要從一個(gè)包中引入多個(gè)類(lèi),則可以用星號(hào)(*)來(lái)代替。例如:

33、import .*;import 如果編寫(xiě)Java Applet程序時(shí)想把整個(gè)javaapplet包都加載,可以使用:import .*;23CLASSPATH是有關(guān)什么的環(huán)境變量它如何影響程序的運(yùn)行如何設(shè)置和修改這個(gè)環(huán)境變量答:在編譯和運(yùn)行程序中,經(jīng)常要用到多個(gè)包,怎樣指明這些包的根目錄呢簡(jiǎn)單地說(shuō),包層次的根目錄是由環(huán)境變量CLASSPATH來(lái)確定的。具體操作有兩種方法:一是在java及javac命令行中,用-classpath選項(xiàng)來(lái)指明:如:java classpath d:tangch04;c:javaclasses;. 二是設(shè)定classpath環(huán)境變量,用命令行設(shè)定環(huán)境變量,如:Se

34、t CLASSPATH= d:tangch04;c:javaclasses;.在Windows中還可以按第2章中的辦法設(shè)定環(huán)境變量。24什么是接口為什么要定義接口接口與類(lèi)有何異同如何定義接口使用什么關(guān)鍵字答:Java中的接口(interface)在語(yǔ)法上有些相似于類(lèi)(class),它定義了若于個(gè)抽象方法和常量,形成一個(gè)屬性集合,該屬性集合通常對(duì)應(yīng)了某一組功能,其主要作用是可以幫助實(shí)現(xiàn)類(lèi)似于類(lèi)的多重繼承的功能。接口中只能有方法名及常數(shù)名,不能像類(lèi)那樣有方法的實(shí)現(xiàn)體。定義接口,使用關(guān)鍵字interface。具體方法是: publicinterface接口名extends父接口名列表 at();cl

35、ass Rodentpublic void eat() "Rodent"); class Mouse extends Rodentpublic void eat() "Mouse"); class Gerbil extends Mousepublic void eat() "Gerbil"); class Hamster extends Gerbilpublic void eat() "Hamster"); 5Java中怎樣清除對(duì)象能否控制Java中垃圾回收的時(shí)間答:Java中,無(wú)用的對(duì)象由系統(tǒng)自動(dòng)進(jìn)行清除和內(nèi)存回

36、收的過(guò)程,編程者可以不關(guān)心如何回收以及何時(shí)回收對(duì)象。對(duì)象的回收是由Java虛擬機(jī)的垃圾回收線程來(lái)完成的。編程者不能完全控制垃圾回收的時(shí)間。6內(nèi)部類(lèi)與外部類(lèi)的使用有何不同答:在封裝它的類(lèi)的內(nèi)部使用內(nèi)部類(lèi),與普通類(lèi)的使用方式相同;在其他地方使用內(nèi)部類(lèi)時(shí),類(lèi)名前要冠以其外部類(lèi)的名字才能使用,在用new創(chuàng)建內(nèi)部類(lèi)時(shí),也要在new前面冠以對(duì)象變量。7怎樣使用匿名類(lèi)的對(duì)象答:在類(lèi)及其方法中,可以定義一種匿名類(lèi),匿名類(lèi)有以下幾個(gè)特點(diǎn):(1)這種類(lèi)不(2)取名(3)字,而(4)直接用其父類(lèi)的名(5)字或者它所實(shí)現(xiàn)的接口的名(6)字。(7)類(lèi)的定義與創(chuàng)建該類(lèi)的一個(gè)實(shí)例同(8)時(shí)進(jìn)行,(9)即類(lèi)的定義前面有一個(gè)n

37、ew。也不(10)使用關(guān)鍵詞class,同(11)時(shí)也帶上()表示創(chuàng)建對(duì)象。也就是說(shuō),(12)匿名(13)類(lèi)的定義方法是: new 類(lèi)名或接口名 () (14)類(lèi)名(15)前面不(16)能有修飾符。(17)類(lèi)中不(18)能定義構(gòu)造方法,(19)因?yàn)樗鼪](méi)有名(20)字。在構(gòu)造對(duì)象時(shí),(21)直接使用父類(lèi)的構(gòu)造方法。如果實(shí)現(xiàn)接口,(22)則接口名(23)后的圓括號(hào)中不(24)能帶參數(shù)。8方法中定義的內(nèi)部類(lèi)是否可以存取方法中的局部變量答:方法中的內(nèi)部類(lèi),不能訪問(wèn)該方法的局部變量,除非是final的局部變量或final的參變量。第6章 異常處理1異??梢苑殖蓭最?lèi)答:Java的異常類(lèi)都是的子類(lèi)。它派生了

38、兩個(gè)子類(lèi):Exception和Error。其中Error類(lèi)由系統(tǒng)保留,而Exception類(lèi)則供應(yīng)用程序使用。2用main()創(chuàng)建一個(gè)類(lèi),令其拋出try塊內(nèi)的Exception類(lèi)的一個(gè)對(duì)象。為Exception的構(gòu)建器賦予一個(gè)字串參數(shù)。在catch從句內(nèi)捕獲異常,并打印出字串參數(shù)。添加一個(gè)finally從句,并打印一條消息。public class Ex6_2public static void main( String args )tryint i = ( "" );catch( Exception e ) e );finally "finished"

39、);答:見(jiàn)程序。3用extends關(guān)鍵字創(chuàng)建自己的異常類(lèi)。為這個(gè)類(lèi)寫(xiě)一個(gè)構(gòu)建器,令其采用String參數(shù),并隨同String句柄把它保存到對(duì)象內(nèi)。寫(xiě)一個(gè)方法,令其打印出保存下來(lái)的String。創(chuàng)建一個(gè)try-catch從句,練習(xí)實(shí)際操作新異常。答:見(jiàn)程序。public class Ex6_3public static void main( String args )trythrow new Ex63Exception("測(cè)試");catch( Ex63Exception e )();finally "finished");class Ex63Except

40、ion extends ExceptionString msg;public Ex63Exception( String msg ) super( msg ); = msg;public void show() msg );4寫(xiě)一個(gè)類(lèi),并在一個(gè)方法拋出一個(gè)異常。試著在沒(méi)有異常規(guī)范的前提下編譯它,觀察編譯器會(huì)報(bào)告什么。接著添加適當(dāng)?shù)漠惓R?guī)范。在一個(gè)try-catch從句中嘗試自己的類(lèi)以及它的異常。答:見(jiàn)程序。public class Ex6_4public static void main( String args )char c;tryc = (char);import .*;import c

41、lass Ex7_7 extends AppletTextField in1 = new TextField(10);TextField in2 = new TextField(10);Button btn = new Button("刪除字符串的指定字符");Label out = new Label("用于顯示結(jié)果的標(biāo)簽");public void main int()setLayout( new FlowLayout() );add( in1 );add( in2 );add( btn );add( out );( new BtnActionAda

42、pter() );class BtnActionAdapter implements ActionListenerpublic void actionPerformed( ActionEvent e )String s1 = ();String s2 = ();char c2 = (0);StringBuffer sb = new StringBuffer();for( int i=0; i<(); i+ )char c1 = (i);if( c1 != c2 ) ( c1 );( "結(jié)果為" + sb );8編程判斷一個(gè)字符串是否是回文。答:import .*;pu

43、blic class Ex7_8 public static void main(String args) tryBufferedReader in = new BufferedReader(new InputStreamReader( ) );"請(qǐng)輸入一串字符: ");String s = ();boolean flg = true;int len = ();for( int i=0; i<len/2; i+ )if( (i) != (len-1-i) )flg = false;break; flg "是回文" : "不是回文"

44、; );catch(IOException e)9String類(lèi)的concat()方法與StringBuffer類(lèi)的append()方法都可以連接兩個(gè)字符串,它們之間有何不同答:String的concat()方法不改變?cè)址旧?,而是產(chǎn)生一個(gè)新的字符串。StringBuffer的append()方法則改變其中的字符串內(nèi)容,而不產(chǎn)生一個(gè)新的對(duì)象。10什么是遞歸方法遞歸方法有哪兩個(gè)基本要素編寫(xiě)一個(gè)遞歸程序求一個(gè)一維數(shù)組所有元素的乘積。答:簡(jiǎn)單地說(shuō),遞歸方法就是直接或間接調(diào)用自己的方法。遞歸方法有兩個(gè)要素:一個(gè)是求得范圍縮小的同性質(zhì)問(wèn)題的結(jié)果;另一是利用這個(gè)已得到的結(jié)果和一個(gè)簡(jiǎn)單的操作求得問(wèn)題的最

45、后解答。class Ex7_10public static double multi( double a )return mul( a, 0 ); ;class Ex7_23public static void main( String args )Frame frm = new Frame("Julia");( 300, 300 );(true);Ex7_23 p = new Ex7_23( frm );();private Frame frm;private Graphics graphics;private int width;private int height;p

46、ublic Ex7_23(Frame frm)graphics = ();width = ().width;height = ().height;public void drawJulia() ;class Ex7_25 public static void main(String args) int a = new int 10 ;for( int i=0; i< i+ ) "請(qǐng)輸入第" + (i+1) + "個(gè)數(shù): " );ai = readOneIntger(); "交換前為:" );print(a);for( int i

47、=0; i<2; i+ )int t;t = a - i -1;a - i - 1 = ai;ai = t; "交換后為:" );print(a);static void print( int a)for( int i=0; i< i+ ) ai + " " );static int readOneIntger( )int n = 0;tryBufferedReader in = new BufferedReader(new InputStreamReader( ) );String s = ();n = ( s );catch(IOExce

48、ption e)return n;26有一個(gè)n*m的矩陣,編寫(xiě)程序,找出其中最大的那個(gè)元素所在的行和列,并輸出其值及行號(hào)和列號(hào)。class Ex7_26public static void main(String args) int n = 5;int m = 6;int a = new intnm;for( int i=0; i<n; i+ )for( int j=0; j<m; j+ )aij = rnd(100);for( int i=0; i<n; i+ )for( int j=0; j<m; j+ )"t" + aij );"n&

49、quot;);int max=a00;int p = 0;int q = 0;for( int i=0; i<n; i+ )for( int j=0; j<m; j+ )if( max < aij )max = aij;p=i;q=j;"第"+(p+1)+"行"+(q+1)+"列的值最大:"+max);public static int rnd( int max )return (int)() * max ) + 1;第8章 Java的多線程1程序中怎樣創(chuàng)建線程答:創(chuàng)建線程對(duì)象有兩種方法,一是通過(guò)繼承Thread類(lèi),

50、一是向Thread類(lèi)傳遞一個(gè)Runnable對(duì)象。2程序中怎樣控制線程答:?jiǎn)?dòng)一個(gè)線程:調(diào)用start()方法。終止或暫停一個(gè)線程:一般采取給線程設(shè)定一個(gè)標(biāo)記變量的方法,來(lái)決定線程是否應(yīng)該終止或暫停。設(shè)定線程的優(yōu)先級(jí):使用Thread對(duì)象的setPriority( int priority)方法。3多線程之間怎樣進(jìn)行同步答:可以通過(guò)使用關(guān)鍵字synchronized,使用對(duì)象的wait()、notify()方法來(lái)實(shí)現(xiàn)線程間的同步。4編寫(xiě)一個(gè)程序,用一個(gè)線程顯示時(shí)間,一個(gè)線程用來(lái)計(jì)算(如判斷一個(gè)大數(shù)是否是質(zhì)數(shù)),當(dāng)質(zhì)數(shù)計(jì)算完畢后,停止時(shí)間的顯示。答:見(jiàn)程序。import class Ex8_4

51、public static void main(String args) new Ex8_4().test();public void test() MyTask mytask = new MyTask();Thread thread = new Thread(mytask);();new Thread( new Clock() ).start();boolean finished = false;class MyTask implements Runnable public void run() for( int i=0; i<10; i+ )doOnce();();finished = true;public void doOnce()Random rnd = new Random();BigInteger prime =(800,rnd);"隨機(jī)數(shù)是:"+(); boolean

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論