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

下載本文檔

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

文檔簡(jiǎn)介

習(xí)題1參考答案1.Java語(yǔ)言的特點(diǎn)有哪些?答:參考1.1.2防止直接訪問(wèn)數(shù)據(jù)變量看起來(lái)有些奇怪,但它實(shí)際上卻對(duì)使用類的程序質(zhì)量有極大的好處。既然數(shù)據(jù)的單個(gè)項(xiàng)是不可訪問(wèn)的,那么惟一的辦法就是通過(guò)方法來(lái)讀或?qū)憽R虼?,如果要求類成員內(nèi)部的一致性,就應(yīng)該通過(guò)類本身的方法來(lái)處理。這種數(shù)據(jù)隱藏技術(shù)就是面向?qū)ο蟮闹匾匦浴庋b。它將類的外部界面與類功能的實(shí)現(xiàn)區(qū)分開(kāi)來(lái),隱藏實(shí)現(xiàn)細(xì)節(jié),(通過(guò)公共方法)保留有限的對(duì)外接口,迫使用戶使用外部界面,通過(guò)訪問(wèn)接口實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作。即使實(shí)現(xiàn)細(xì)節(jié)發(fā)生了改變,還可通過(guò)界面承擔(dān)其功能而保留原樣,確保調(diào)用它的代碼還繼續(xù)工作,這使代碼維護(hù)更簡(jiǎn)單。2.簡(jiǎn)述封裝的優(yōu)點(diǎn)。答:封裝是一個(gè)簡(jiǎn)單而有效的思想,優(yōu)點(diǎn)有:(1)模塊化,對(duì)內(nèi)成為一個(gè)結(jié)構(gòu)完整、可進(jìn)行自我管理、自我平衡、高度集中的整體。(2)信息隱蔽,對(duì)外則是一個(gè)功能明確、接口單一、可在各種適合的環(huán)境下都能獨(dú)立工作的有機(jī)單元。面向?qū)ο蟮某绦蛟O(shè)計(jì)實(shí)現(xiàn)了對(duì)象的封裝,使得用戶不必關(guān)心諸如對(duì)象的行為是如何實(shí)現(xiàn)的這樣一些細(xì)節(jié)。通過(guò)對(duì)對(duì)象的封裝,實(shí)現(xiàn)了模塊化和信息隱藏,有利于程序的可移植性和安全性,同時(shí)也有利于對(duì)復(fù)雜對(duì)象的管理。類的封裝性使得代碼的可重用性大為提高,這樣的有機(jī)單元特別適合構(gòu)建大型標(biāo)準(zhǔn)化的軟件系統(tǒng),具有很高的開(kāi)發(fā)效率。3.Java的基本工具有哪些?(1)javac編譯器(2)java解釋器(3)jdbJava語(yǔ)言調(diào)試器(4)javadocAPI文檔管理器(5)javah頭文件生成器(6)appletviewer小應(yīng)用程序?yàn)g覽器(7)javap類文件反匯編器4.Java開(kāi)發(fā)環(huán)境是如何配置的?答:對(duì)于Windows2000以上版本的操作系統(tǒng),可以打開(kāi)[控制面板]窗口,雙擊其中的[系統(tǒng)]圖標(biāo),在[系統(tǒng)特性]窗口中單擊[高級(jí)]選項(xiàng)卡,進(jìn)而單擊[環(huán)境變量]按鈕。在出現(xiàn)的[環(huán)境變量]窗口中,在[系統(tǒng)變量]框中選擇[Path]項(xiàng),單擊[編輯]按鈕,在彈出的[編輯系統(tǒng)變量]窗口的[變量值]框后加上上面兩條語(yǔ)句。習(xí)題2參考答案1.Java語(yǔ)言包含哪些數(shù)據(jù)類型?答:包含基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類型?;绢愋桶ㄕ麛?shù)類型、浮點(diǎn)數(shù)類型、布爾類型。復(fù)合類型包括類類型(ClassType)、接口類型(InterfaceType)與數(shù)組類型(ArrayType)。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,while3.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)有哪幾類?答:流程控制語(yǔ)句可以分為選擇、循環(huán)和跳轉(zhuǎn)3大類。習(xí)題3參考答案1.聲明類的格式是什么?答:[類修飾符]class類名稱[extends父類名稱][implements接口名稱]{類主體}2.面向?qū)ο蟪绦蛟O(shè)計(jì)中,什么是構(gòu)造函數(shù)?答:類類型聲明方法成員,如果方法名稱與類名稱一樣,這種方法成員稱為構(gòu)造函數(shù)。習(xí)題4參考答案1.面向?qū)ο蟪绦蛟O(shè)計(jì)中,什么是封裝?答:OOP將處理過(guò)程與數(shù)據(jù)合并在一起處理。2.面向?qū)ο蟪绦蛟O(shè)計(jì)中,什么是數(shù)據(jù)抽象化?答:OOP程序設(shè)計(jì)的重心為對(duì)象,因些對(duì)象被視為擁有本身數(shù)據(jù)與處理過(guò)程的組件,這些組件都有其獨(dú)立性。所以對(duì)象內(nèi)、外程序的處理就有某種程度的限制,換句話說(shuō),對(duì)象外部并不明了對(duì)象內(nèi)部數(shù)據(jù)如何傳遞、改變,如何處理過(guò)程。這種隱藏對(duì)象內(nèi)部的數(shù)據(jù)及處理過(guò)程的方式,使得對(duì)象抽象化,有人將這種處理方式稱為數(shù)據(jù)抽象化。類庫(kù)就是JavaAPI(ApplicationProgrammingInterface,應(yīng)用程序接口),是系統(tǒng)提供的已實(shí)現(xiàn)的標(biāo)準(zhǔn)類的集合。在程序設(shè)計(jì)中,合理和充分利用類庫(kù)提供的類和接口,不僅可以完成字符串處理、繪圖、網(wǎng)絡(luò)應(yīng)用、數(shù)學(xué)計(jì)算等多方面的工作,而且可以大大提高編程效率,使程序簡(jiǎn)練、易懂。習(xí)題5參考答案1.簡(jiǎn)述數(shù)據(jù)類型類的常用方法。答:對(duì)所有數(shù)據(jù)類型類的對(duì)象,形如“對(duì)象名.xxxxValue()”的成員方法,用來(lái)獲得對(duì)象中的基本類型數(shù)據(jù)。包括:對(duì)象名.doubleValue();對(duì)象名.intValue();對(duì)象名.byteValue();對(duì)象名.shortValue();對(duì)象名.longValue();對(duì)象名.charValue();對(duì)象名.floatValue();對(duì)象名.booleanValue();2.何為命令行參數(shù)?答:所謂命令行參數(shù),是指執(zhí)行某個(gè)Java應(yīng)用程序時(shí),從命令行中向程序直接傳送的參數(shù)。我們可以獲得這些參數(shù)的值,并運(yùn)用到程序的執(zhí)行過(guò)程中。3.如何定義和創(chuàng)建一個(gè)數(shù)組?答:要?jiǎng)?chuàng)建一個(gè)數(shù)組,必須首先定義數(shù)組變量所需的類型。通用的一維數(shù)組的聲明格式是:typearrayName[];其中,type定義了數(shù)組的基本類型,arrayName是數(shù)組的名稱?;绢愋蜎Q定了組成數(shù)組的每一個(gè)基本元素的數(shù)據(jù)類型。4.如何聲明一個(gè)二組數(shù)組?答:二維數(shù)組的一般聲明格式如下:數(shù)組元素類型

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

[][]數(shù)組名;5.列舉一下數(shù)據(jù)類型類的常用方法。答:對(duì)所有數(shù)據(jù)類型類的對(duì)象,形如“對(duì)象名、xxxxvalue()”的成員方法,用來(lái)獲得對(duì)象中的基本數(shù)據(jù)類型。包括:對(duì)象名、doubleValue();對(duì)象名、intValue();對(duì)象名、byteValue();等。習(xí)題6參考答案1.解釋下列方法的意義:(1)toLowerCase()

(2)toUpperCase()

(3)charAt()(4)equalsIgnoreCase()

(5)capacity()

(6)setLength()(7)reverse()

(8)replace(start,end,str)答:(1)將字符轉(zhuǎn)換成小寫(xiě)字符(2)將字符轉(zhuǎn)換成大寫(xiě)字符(3)從0算起第index字符(4)忽略大小寫(xiě),比較兩字符串是否,相等,若是返回true,否則返回false(5)計(jì)算字符串緩沖器的容量(6)設(shè)定字符串的長(zhǎng)度(7)將字符串反轉(zhuǎn)排列(8)返回字符串緩沖器從stare開(kāi)始到end結(jié)束字符被str字符串取代2.capacity()與length()的用法有什么不同?答:capacity()用來(lái)計(jì)算字符串緩沖器的容量,length()用于計(jì)算字符串長(zhǎng)度。如:StringBufferko1=newStringBuffer(20),則ko1capacity()=20,但ko1,length()可能是0或20,視ko1字符串長(zhǎng)度而定。習(xí)題7參考答案1.什么叫流?流式輸入輸出有什么特點(diǎn)?答:Java中的流是對(duì)數(shù)據(jù)傳遞機(jī)制的抽象。流分為兩種:輸入和輸出。Java中所有輸入/輸出操作都是使用基本字節(jié)類型完成的。字符是通過(guò)值為字節(jié)類型的特殊代碼處理的。Java程序的所有讀寫(xiě)操作都是通過(guò)流實(shí)現(xiàn)的。流是一組字符序列。輸入源可以是鍵盤、文件或網(wǎng)絡(luò),輸出自的地可以是屏幕、文件或網(wǎng)絡(luò)。數(shù)據(jù)作為字節(jié)序列進(jìn)行發(fā)送和接收。2.File類有哪些構(gòu)造函數(shù)和常用方法?并舉例說(shuō)明。答:使用下面的構(gòu)造函數(shù)創(chuàng)建File對(duì)象:File(Stringdirpath)File(Stringdirpath,Stringnlename)File(FnedirObj,Stringfilename)這里,dirpath是文件的路徑名,filename是文件名,dirObj是指定目錄的Fie對(duì)象。下面的例子創(chuàng)建了3個(gè)文件:f1、f2和f3。第一個(gè)File對(duì)象只有目錄路徑一個(gè)參數(shù)。第二個(gè)有兩個(gè)參數(shù)——目錄和文件名。第三個(gè)包括賦給n的文件路徑和文件名。f3和f2指的是同一個(gè)文件。最后一個(gè)包括指定文件“autoexec.bat”所在的目錄名稱。Filef1=newFile("/");Filef2=newFile("/","autoexec.bat");Filef3=newFile(f1,"autoexec.bat");Filef3=newFile("user","autoexec.bat");File類的方法下面是File類中一些重要的方法:getName()該方法用來(lái)獲取指定文件的名稱。getPath()/getAbsolutePath()這兩個(gè)方法分別得到指定文件的相對(duì)路徑和絕對(duì)路徑。exists()該方法用來(lái)判斷命名的文件是否存在于目錄當(dāng)中。isFile()/isDirectory()這兩個(gè)方法分別用來(lái)判斷命名的文件是否是普通文件和目錄。canRead()/canWrite()這兩個(gè)方法分別用來(lái)判斷指定文件是否可讀寫(xiě)。lastModified()該方法返回文件最近一次被修改的時(shí)間。length()該方法返回文件的大小,以字節(jié)記。delete()該方法用來(lái)刪除指定文件。renameTo()該方法用來(lái)對(duì)已知文件進(jìn)行重命名。它將目的文件或者說(shuō)重命名后的文件對(duì)象作為參數(shù)。isFile()該方法通常返回true,但是一些特殊的文件如設(shè)備驅(qū)動(dòng)和命名管道可能與普通文件不同,所以該方法可以確定所訪問(wèn)實(shí)體是一個(gè)文件。isAbsolute()如果文件是絕對(duì)路徑該方法返回true,相對(duì)路徑則返回false。3.簡(jiǎn)單介紹一下RandomAccessFile類。答:RandomAceessFile類封裝了一個(gè)隨機(jī)訪問(wèn)文件。它不是從輸入輸出流中獲得。相反,它實(shí)現(xiàn)了定義基礎(chǔ)FO方法的Datalnput和DataOutput這兩個(gè)接口。它也支持定位請(qǐng)求,例如可以在文件中定位文件指針。它包含下面兩個(gè)構(gòu)造函數(shù):RandomAccessFile(FilefObj,Stringacc)RandomAccessFile(Stringfname,Stringacc)在第一種形式下,fObj是指作為File對(duì)象打開(kāi)的文件名稱。在第二種形式下,以fname作為參數(shù)傳遞文件名。在兩種情況下,acc都決定了允許訪問(wèn)什么樣的文件類型。如果是“r”,那么可以對(duì)文件進(jìn)行讀訪問(wèn),如果是“rw”,則可以進(jìn)行讀寫(xiě)訪問(wèn)。seek()方法用來(lái)設(shè)置文件指針的當(dāng)前位置。voidseek(longnewPos)這里,newpos是指以字節(jié)方式指定的新位置或者從文件頭或文件尾開(kāi)始的文件指針。調(diào)用seek方法之后,將會(huì)在新的文件位置發(fā)生讀或?qū)懙牟僮鳌?.舉例實(shí)現(xiàn)寫(xiě)文件FileOutputStream類。寫(xiě)文件舉例如下://FileOutputSample.javaimportjava.io.*;publicclassFileOutputSample{publicstaticvoidmain(Stringargs[])

{Stringname="OutputFileExample.txt";FileOutputStreamoutputStre~m;//文件輸出流對(duì)象//緩沖數(shù)組,假設(shè)寫(xiě)入文件的長(zhǎng)度不超過(guò)1024字節(jié)byte[]buffer=newbyte[1024];try{outputStream=newFileOutputStream(newFile(name));try{System.out.println("\nInputfilecontent(TabEntertoexit):");//循環(huán)讀入字符,TabEnter鍵結(jié)束intb,

i=0;while

(i<1024&&

(char)

(b=System.in.read())!='\t'){buffer[i]=(byte)

b;}outputStream.write(buffer);outputStream.close();}catch

(IOExceptione)

{System.err.println("I/OExceptionwhenwritingorclosing:"e.toString());}}catch

(Exceptione)

{System.err.println(e.toString());}System.out.println("ThecontenthasbeensavedtoFile"name);}}編譯運(yùn)行程序,程序會(huì)提示用戶輸入,用戶輸入“TabEnter”后將退出向文件中輸入內(nèi)容,然后用戶輸入的內(nèi)容將保存到文件OutputFileExample.txt中。5.數(shù)據(jù)流分哪兩種?答:數(shù)據(jù)流分為數(shù)據(jù)輸入流DataInputStream和數(shù)據(jù)輸出流DataOutputStream。(1)數(shù)據(jù)輸入流DataInputSrtream類DataInputStream繼承自FilterInputStream類,并實(shí)現(xiàn)了DataInput接口。其構(gòu)造函數(shù)如下:publicDatalnputStream(InputStreamin);其構(gòu)造函數(shù)以一個(gè)字節(jié)輸入流in對(duì)象位參數(shù),在創(chuàng)建DatalnputStream對(duì)象時(shí),in是InputStream類的子類的一個(gè)對(duì)象。DataInputStream類常用的構(gòu)造方法包括:publicfinalihtread(int[]b);publicfinalintread(int[]b,intoffset,intlen);publicfinalintreadInt();前兩個(gè)方法主要是將輸入流對(duì)象中的數(shù)據(jù)讀入到一個(gè)緩沖數(shù)組b中:而第三個(gè)方法是讀取一個(gè)整型數(shù)據(jù),與該方法類似的還有readChar()、readBoolean()、readFloat()、readDouble()等,這些方法都是讀入一個(gè)簡(jiǎn)單類型的數(shù)據(jù),可以是Java中任何基本數(shù)據(jù)類型。(2)數(shù)據(jù)輸出流DataOutputStream類DataOutputStream繼承自FilterOutputStream類,并實(shí)現(xiàn)了DataOutput接口,其構(gòu)造函數(shù)為:

publicDataOutputStream(OutputStreamout);類DataOutputStream中常用的方法主要有:publicvoidflush();publicvoidwrite(intb);publicvoidwrite(byte[]b,intoffset,intlen);publicvoidwriteByte(intv);publicvoidwriteBytes(Strings);publicvoidwriteChar(intv);publicvoidwriteChars(Strings);當(dāng)然,寫(xiě)方法中還有寫(xiě)入其他任何一種簡(jiǎn)單數(shù)據(jù)類型的方法。習(xí)題8參考答案1.?dāng)⑹鯰extComponent組件的功能。答:TextComponent組件用于編輯文本。2.TextComponent類包括哪兩種子類?答:TextComponent類包括文本框(TextField)和文本域(TextArea)兩種子類。3.編寫(xiě)一個(gè)程序,使用戶能夠使用鼠標(biāo)在Applet中繪制一個(gè)矩形。按住鼠標(biāo)左鍵,確定矩形左上角,然后拖動(dòng)鼠標(biāo),在需要的位置(即矩形右下角)釋放鼠標(biāo)。另外,在狀態(tài)欄中顯示矩形面積。參考程序如下:importjava.applet.Applet;importjava.awt.*;importjava.awt.event.*;publicclassChp9_3_EextendsAppletimplementsMouseListener,MouseMotionListener{intx1,y1,x2,y2;publicvoidinit(){addMouseListener(this);addMouseMotionListener(this);}publicvoidpaint(Graphicsg){g.drawRect(x1,y1,x2,y2);intarea=Math.abs(x2-x1)*Math.abs(y2-y1);showStatus("矩形面積:"area);}//implementationofMouseListenerpublicvoidmousePressed(MouseEvente){x1=e.getX();y1=e.getY();}publicvoidmouseClicked(MouseEvente){}publicvoidmouseEntered(MouseEvente){}publicvoidmouseExited(MouseEvente){}publicvoidmouseReleased(MouseEvente){}//implementationofMouseMotionEventpublicvoidmouseDragged(MouseEvente){x2=e.getX();y2=e.getY();repaint();}publicvoidmouseMoved(MouseEvente){}}習(xí)題9參考答案1.簡(jiǎn)述JavaApplet的運(yùn)行過(guò)程。答:Applet的運(yùn)行過(guò)程:首先將編譯好的字節(jié)碼文件和編寫(xiě)好的HTML文件(其中包含字節(jié)碼文件名)保存在Web服務(wù)器的合適路徑下;當(dāng)WWW瀏覽器下載此HTML文件并顯示時(shí),它會(huì)自動(dòng)下載HTML中指定的JavaApplet字節(jié)碼,然后調(diào)用內(nèi)置在瀏覽器中的Java解釋器來(lái)解釋執(zhí)行下載到本機(jī)的字節(jié)碼程序。2.舉例說(shuō)明Applet中的參數(shù)傳遞。答:例如:importjava.a(chǎn)pplet.*;importjava.a(chǎn)wt.*;publicclasspanuneterextendsApplet{Stringinput;publicvoidinit(){input=getParameter("String");}publicvoidpaint(Graphicsg){g.drawString(input,100,100);}}可以使用下面的代碼給Applet傳遞一個(gè)參數(shù)。這里通過(guò)VALUE屬性傳遞了String類型的輸入。NAME指出在Java代碼中的參數(shù)名。<appletcode="parameter,class"width=40

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論