《Java程序設(shè)計》課后習(xí)題參考答案_第1頁
《Java程序設(shè)計》課后習(xí)題參考答案_第2頁
《Java程序設(shè)計》課后習(xí)題參考答案_第3頁
《Java程序設(shè)計》課后習(xí)題參考答案_第4頁
《Java程序設(shè)計》課后習(xí)題參考答案_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

高等院校計算機(jī)基礎(chǔ)教育規(guī)劃教材《Java程序設(shè)計》課后習(xí)

題參考答案

習(xí)題1參考答案

1.Java語言的特點有哪些?

答:參考1.1.2

防止直接訪問數(shù)據(jù)變量看起來有些奇怪,但它實際上卻對使月類的程序質(zhì)量有極大

的好處。既然數(shù)據(jù)的單個項是不可訪問的,那么惟一的辦法就是通過方法來讀或?qū)?。?/p>

此,如果要求類成員內(nèi)部的一致性,就應(yīng)該通過類本身的方法來處理。

這種數(shù)據(jù)隱藏技術(shù)就是面向?qū)ο蟮闹匾匦砸环庋b。它將類的外部界面與類功能

的實現(xiàn)區(qū)分開來,隱藏實現(xiàn)細(xì)節(jié),(通過公共方法)保留有限的對外接口,迫使用戶使用

外部界面,通過訪問接口實現(xiàn)對數(shù)據(jù)的操作。即使實現(xiàn)細(xì)節(jié)發(fā)生了改變,還可通過界面

承擔(dān)其功能而保留原樣,確保調(diào)用它的代碼還繼續(xù)工作,這使代碼維護(hù)更簡單。

2.簡述封裝的優(yōu)點。

答:封裝是一個簡單而有效的思想,優(yōu)點有:(1)模塊化,對內(nèi)成為一個結(jié)構(gòu)完整、

可進(jìn)行自我管理、自我平衡、高度集中的整體。(2)信息隱蔽,對外則是一個功能明確、

接口單一、可在各種適合的環(huán)境下都能獨立工作的有機(jī)單元。

面向?qū)ο蟮某绦蛟O(shè)計實現(xiàn)了對象的封裝,使得用戶不必關(guān)心諸如對象的行為是如何

實現(xiàn)的這樣一些細(xì)節(jié)。通過對對象的封裝,實現(xiàn)了模塊化和信息隱藏,有利于程序的可

移植性和安全性,同時也有利于對復(fù)雜對象的管理。類的封裝性使得代碼的可重用性大

為提高,這樣的有機(jī)單元特別適合構(gòu)建大型標(biāo)準(zhǔn)化的軟件系統(tǒng),具有很高的開發(fā)效率。

3.Java的基本工具有哪些?

(1)javac編譯器

(2)java解釋器

(3)jdbJava語言調(diào)試器

(4)javadocAPI文檔管理器

(5)javah頭文件生成器

(6)appletviewer小應(yīng)用程序瀏覽器

(7)javap類文件反匯編器

4.Java開發(fā)環(huán)境是如何配置的?

答:對于Windows2000以上版本的操作系統(tǒng),可以打開[控制面板]窗口,雙擊其

中的[系統(tǒng)]圖標(biāo),在[系統(tǒng)特性]窗口中單擊[高級]選項卡,進(jìn)而單擊[環(huán)境變量]按鈕。在

出現(xiàn)的[環(huán)境變量]窗口中,在[系統(tǒng)變量]框中選擇[Path]項,單擊[編輯]按鈕,在彈出的[編

輯系統(tǒng)變量]窗口的[變量值]框后加上上面兩條語句。

習(xí)題2參考答案

1.Java語言包含哪些數(shù)據(jù)類型?

答:包含基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類型?;绢愋桶ㄕ麛?shù)類型、浮點數(shù)類型、布

爾類型。復(fù)合類型包括類類型(ClassType)>接口類型(InterfaceType)與數(shù)組類型(Array

Type)。

2.Java有多少關(guān)鍵字?

答:abstract,continue,for,new,switch,boolean,default,goto*,null,synchronized,

break,do,if,package,this,byte,double,implements,private,threadsafe,byvalve*,else,

import,protected,throw,case,extends,instanceof,public,transient,catch,false,int,return,

true,char,final,interface,short,try,class,finally,long,static,void,const*,float,native,

super,while

3.byte、short、int、long和char整數(shù)類型各占了多少字節(jié)?

答:byte占了1字節(jié),short占了2字節(jié),int占了4字節(jié),long占了8字節(jié),char

占了2字節(jié)。

4.Java的控制結(jié)構(gòu)有哪幾類?

答:流程控制語句可以分為選擇、循環(huán)和跳轉(zhuǎn)3大類。

習(xí)題3參考答案

1.聲明類的格式是什么?

答:

[類修飾符]class類名稱[extends父類名稱][implements接口名稱]

(

類主體

1

2.面向?qū)ο蟪绦蛟O(shè)計中,什么是構(gòu)造函數(shù)?

答:類類型聲明方法成員,如果方法名稱與類名稱一樣,這種方法成員稱為構(gòu)造函

數(shù)。

習(xí)題4參考答案

1.面向?qū)ο蟪绦蛟O(shè)計中,什么是封裝?

答:OOP將處理過程與數(shù)據(jù)合并在一起處理。

2.面向?qū)ο蟪绦蛟O(shè)計中,什么是數(shù)據(jù)抽象化?

答:OOP程序設(shè)計的重心為對象,因些對象被視為擁有本身數(shù)據(jù)與處理過程的組

件,這些組件都有其獨立性。所以對象內(nèi)、外程序的處理就有某種程度的限制,換句話

說,對象外部并不明了對象內(nèi)部數(shù)據(jù)如何傳遞、改變,如何處理過程。這種隱藏對象內(nèi)

部的數(shù)據(jù)及處理過程的方式,使得對象抽象化,有人將這種處理方式稱為數(shù)據(jù)抽象化。

類庫就是JavaAPI(ApplicationProgramminginterface,應(yīng)用程序接口),是系統(tǒng)提供的已

實現(xiàn)的標(biāo)準(zhǔn)類的集合。在程序設(shè)計中,合理和充分利用類庫提供的類和接口,不僅可以

完成字符串處理、繪圖、網(wǎng)絡(luò)應(yīng)用、數(shù)學(xué)計算等多方面的工作,而且可以大大提高編程

效率,使程序簡練、易懂。

習(xí)題5參考答案

1.簡述數(shù)據(jù)類型類的常用方法。

答:對所有數(shù)據(jù)類型類的對象,形如“對象名.xxxxValueO”的成員方法,用來獲

得對象中的基本類型數(shù)據(jù)。包括:

對象名.doubleValue();

對象名.inlValue。;

對象名.byteValue。;

對象名.shortValue。;

對象名JongValue。;

對象名.charValue();

對象名foatValue。;

對象名.booleanValue。;

2.何為命令行參數(shù)?

答:所謂命令行參數(shù),是指執(zhí)行某個Java應(yīng)用程序時,從命令行中向程序直接傳

送的參數(shù)。我們可以獲得這些參數(shù)的值,并運用到程序的執(zhí)行過程中。

3.如何定義和創(chuàng)建一個數(shù)組?

答:要創(chuàng)建一個數(shù)組,必須首先定義數(shù)組變量所需的類型。通用的一維數(shù)組的聲明

格式是:typearrayName口洪中,type定義了數(shù)組的基本類型,arrayName是數(shù)組的

名稱?;绢愋蜎Q定了組成數(shù)組的每一個基本元素的數(shù)據(jù)類型。

4.如何聲明一個二組數(shù)組?

答:二維數(shù)組的一般聲明格式如下:

數(shù)組元素類型數(shù)組名[川;

數(shù)組元素類型nn數(shù)組名;

5.列舉一下數(shù)據(jù)類型類的常用方法。

答:對所有數(shù)據(jù)類型類的對象,形如“對象名、xxxxvalue()”的成員方法,用來

獲得對象中的基本數(shù)據(jù)類型。包括:對象名、doubleValue();對象名、iniValue();

對象名、byteValue();等。

習(xí)題6參考答案

1.解釋下列方法的意義:

(1)toLowerCase()(2)toUpperCase()(3)charAt()

(4)equalsIgnoreCaseO(5)capacity()(6)setLength()

(7)reverse()(8)replace(start,end,str)

答;

(1)將字符轉(zhuǎn)換成小寫字符

(2)將字符轉(zhuǎn)換成大寫字符

(3)從0算起第index字符

(4)忽略大小寫,比較兩字符串是否,相等,若是返回true,否則返回false

(5)計算字符串緩沖器的容量

(6)設(shè)定字符串的長度

(7)將字符串反轉(zhuǎn)排列

(8)返回字符串緩沖器從stare開始到end結(jié)束字符被str字符串取代

2.capacity。與length。的用法有什么不同?

答:capacity()用來計算字符串緩沖器的容量,length()用于計算字符串長度。

如:StringBufferkol=newStringBuffer(20)>則koicapacity()=20,但koi,length

O可能是0或20,視koi字符串長度而定。

習(xí)題7參考答案

1.什么叫流?流式輸入輸出有什么特點?

答:Java中的流是對數(shù)據(jù)傳遞機(jī)制的抽象。流分為兩種:輸入和輸出。Java中所

有輸入/輸出操作都是使用基本字節(jié)類型完成的。字符是通過值為字節(jié)類型的特殊代碼

處理的。Java程序的所有讀寫操作都是通過流實現(xiàn)的。流是一組字符序列。輸入源可以

是鍵盤、文件或網(wǎng)絡(luò),輸出自的地可以是屏幕、文件或網(wǎng)絡(luò)。數(shù)據(jù)作為字節(jié)序列進(jìn)行發(fā)

送和接收。

2.File類有哪些構(gòu)造函數(shù)和常用方法?并舉例說明。

答:使用下面的構(gòu)造函數(shù)創(chuàng)建File對象:

File(Stringdirpath)

File(Stringdiq?ath,Stringnlename)

File(FncdirObj,Stringfilenamc)

這里,dirpath是文件的路徑名,filename是文件名,dirObj是指定目錄的Fie對象。

下面的例子創(chuàng)建了3個文件:fl、已和f3,第一個File對象只有目錄路徑一個參

數(shù)。第二個有兩個參數(shù)一一目錄和文件名。第三個包括賦給n的文件路徑和文件名。f3

和也指的是同一個文件。最后一個包括指定文件“autoexec,bai”所在的目錄名稱。

Filefl=newFiIe("/");

Filef2=newFiIe("/","autoexec,bat");

Filef3=newFile(fl,"autoexec,bat");

Filef3=newFile("user"/'autoexec.bat");

File類的方法

下面是File類中一些重要的方法:

getName()

該方法用來獲取指定文件的名稱。

getPath()/getAbsolutePath()

這兩個方法分別得到指定文件的相對路徑和絕對路徑。

exists()

該方法用來判斷命名的文件是否存在于目錄當(dāng)中。

isFile()/isDirectory()

這兩個方法分別用來判斷命名的文件是否是普通文件和目錄。

canReadO/canWriteO

這兩個方法分別用來判斷指定文件是否可讀寫。

lastModified()

該方法返回文件最近一次被修改的時間。

lengthO

該方法返回文件的大小,以字節(jié)記。

delete()

該方法用來刪除指定文件。

renameTo()

該方法用來對已知文件進(jìn)行重命名。它將目的文件或者說重命名后的文件對象作為

參數(shù)。

isFile()

該方法通常返回true,但是一些特殊的文件如設(shè)備驅(qū)動和命名管道可能與普通文件

不同,所以該方法可以確定所訪問實體是一個文件。

isAbsolute()

如果文件是絕對路徑該方法返回true,相對路徑則返回false。

3.簡單介紹一下RandomAccessFile類。

答:RandomAceessFile類封裝了一個隨機(jī)訪問文件。它不是從輸入輸出流中獲得。

相反,它實現(xiàn)了定義基礎(chǔ)F0方法的Datalnput和DalaOutput這兩個接口。它也支持定

位請求,例如可以在文件中定位文件指針。它包含下面兩個構(gòu)造函數(shù):

RandomAccessFiIe(FilefObj,Stringacc)

RandomAccessFile(Stringfnamc,Stringacc)

在第一種形式下,fObj是指作為File對象打開的文件名稱。在第二種形式下,以

fname作為參數(shù)傳遞文件名。在兩種情況下,acc都決定了允許訪問什么樣的文件類型。

如果是“r”,那么可以對文件進(jìn)行讀訪問,如果是“rw”,則可以進(jìn)行讀寫訪問。seek()

方法用來設(shè)置文件指針的當(dāng)前位置。

voidseek(longnewPos)

這里,newpos是指以字節(jié)方式指定的新位置或者從文件頭或文件尾開始的文件指

針。調(diào)用seek方法之后,將會在新的文件位置發(fā)生讀或?qū)懙牟僮鳌?/p>

4.舉例實現(xiàn)寫文件FileOutputStream類。

寫文件舉例如下:

//FilcOutputSamplc.java

importjava.io.*;

publicclassFileOulpulSainple{

publicstaticvoidmain(Stringargs[]){

Stringname="OutputFiIeExample.txt";

FileOutputStreamoutputS:re~m;〃文件輸出流對象

〃緩沖數(shù)組,假設(shè)寫入文件的長度不超過1024字節(jié)

byte[]buffer=newbyte[1024];

try(

outputStream=newFileOutputStream(newFile(name));

try(

System.out.println("\nlr.putfilecontent(Tab+Entertoexit):

〃循環(huán)讀入字符,Tab+Enter鍵結(jié)束

intb,i=0;

while(i<1024&&(char)(b=System.in.read())!='\f){

buffer[i++]=(byte)b;

)

outputStream.write(buffer);

outputStrcam.close();

)

catch(lOExceptione){

System.err.printin("I/OExceptionwhenwritingorclosing:"+

e.toString());

)

)

catch(Exceptione){

System.err.printin(e.toString());

)

System.out.println("ThecontenthasbeensavedtoFile"+name);

)

)

編譯運行程序,程序會提示用戶輸入,用戶輸入“Tab+Entcr”后將退出向文件中

輸入內(nèi)容,然后用戶輸入的內(nèi)容將保存到文件OutputFileExample.txt中。

5.數(shù)據(jù)流分哪兩種?

答:數(shù)據(jù)流分為數(shù)據(jù)輸入流DatalnputStream和數(shù)據(jù)輸出流DataOutputStream。

(1)數(shù)據(jù)輸入流DatalnputSrtream

類DatalnputSlreani繼承自FilterlnpulStream類,并實現(xiàn)了Dalalnput接口。其構(gòu)造

函數(shù)如下:

publicDatalnputStream(InputStreamin);

其構(gòu)造函數(shù)以一個字節(jié)輸入流in對象位參數(shù),在創(chuàng)建DatalnputStream對象時,in

是InputStream類的子類的一個對象。

DatalnputStream類常用的構(gòu)造方法包括:

publicfinalihtrcad(int[]b);

publicfinalintread(int[]b?inioffset,intlen);

publicfinalinireadln(();

前兩個方法主要是將輸入流對象中的數(shù)據(jù)讀入到一個緩沖數(shù)組b中:而第三個方法

是讀取一個整型數(shù)據(jù),與該方法類似的還有readChar()、readBoolean。、readFloat。、

readDoubleO等,這些方法都是讀入一個簡單類型的數(shù)據(jù),可以是Java中任何基本數(shù)據(jù)

類型。

(2)數(shù)據(jù)輸出流DataOutputStream

類DataOutputStream繼承自FilterOutputStream類,并實現(xiàn)了DataOutput接口,其

構(gòu)造函數(shù)為:

publicDataOutputStream{OutputStreamout);

類DataOulpulStream中常用的方法主要有:

publicvoidflush();

publicvoidwrite(intb);

publicvoidwrite(byte[]b,intoffset,intlen);

publicvoidwriteByte(intv);

publicvoidwriteBytes(Strings);

publicvoidwriteChar(intv);

publicvoidwriteChars(Strings);

當(dāng)然,寫方法中還有寫入其他任何一種簡單數(shù)據(jù)類型的方法。

習(xí)題8參考答案

1.敘述TextComponent組件的功能。

答:TextComponent組件用于編輯文本。

2.TextComponent類包括哪兩種子類?

答:TextComponent類包括文本框(TextField)和文本域(TextArea)兩種子類。

3.編寫一個程序,使用戶能夠使用鼠標(biāo)在Applet中繪制一個矩形。按住鼠標(biāo)左鍵,

確定矩形左上角,然后拖動鼠標(biāo),在需要的位置(即矩形右下角)釋放鼠標(biāo)。另外,在

狀態(tài)欄中顯示矩形面積。

參考程序如下:

importjava,applet.Applet;

importjava.awt.*;

importjava.awt.event.*;

publicclassChp9_3_EextendsAppletimplements

MouseListener,MouseMotionListener{

intxl,yl,x2,y2;

publicvoidinit(){

addMouseListener(this);

ciddMouseMotionListener(this);

)

publicvoidpaint(Graphicsg){

g.drawRect(xl,yl,x2,y2);

intarea=Math.abs(x2-xl)*Math.abs(y2-yl);

showStatus("矩形面積:"+area);

)

//implementationofMouseListener

publicvoidmousePressed(MouseEvente){

xl=e.getXO;

yl=e.getY();

)

publicvoidmousedieked(MouseEvente){}

publicvoidmouseEntered(MouseEvente){}

publicvoidmouseExited(MouseEvente){}

publicvoidmouseReleased(MouseEvente){)

//implementationofMouseMotionEvent

publicvoidmouseDragged(MouseEvente){

x2=e.getXO;

y2=e.getYO;

repaint();

)

publicvoidmouseMoved(MouseEvente){)

)

習(xí)題9參考答案

1.簡述JavaApplet的運行過程。

答:Applet的運行過程:首先將編譯好的字節(jié)碼文件和編寫好的HTML文件(其中

包含字節(jié)碼文件名)保存在Web服務(wù)器的合適路徑下;當(dāng)WWW瀏覽器下載此HTML

文件并顯示時,它會自動下載HTML中指定的JavaApplet字節(jié)碼,然后調(diào)用內(nèi)置在瀏

覽器中的Java解釋器來解釋執(zhí)行下載到本機(jī)的字節(jié)碼程序。

2.舉例說明Applet中的參數(shù)傳遞。

答:例如:

importjava,applet.*;

importjava,awt.*;

publicclasspanuneterextendsApplet

(

Stringinput;

publicvoidinit()

{

input=getParamctcr("String");

)

publicvoidpaint(Graphicsg)

(

g.drawString(input,100,100);

})

可以使用下面的代碼給Applet傳遞一個參數(shù)。這里通過VALUE屬性傳遞了String

類型的輸入。NAME指出在Java代碼中的參數(shù)名。

<appletcode=',parameter,cla

溫馨提示

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

最新文檔

評論

0/150

提交評論