Java 2實用教程(第5版)習(xí)習(xí)題解答_第1頁
Java 2實用教程(第5版)習(xí)習(xí)題解答_第2頁
Java 2實用教程(第5版)習(xí)習(xí)題解答_第3頁
Java 2實用教程(第5版)習(xí)習(xí)題解答_第4頁
Java 2實用教程(第5版)習(xí)習(xí)題解答_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、習(xí)題解答習(xí)題1(第1章)一、問答題1James Gosling2需3個步驟:1) 用文本編輯器編寫源文件。 2) 使用javac編譯源文件,得到字節(jié)碼文件。3) 使用解釋器運行程序。3源文件由若干個類所構(gòu)成。對于應(yīng)用程序,必須有一個類含有public static void main(String args)的方法,含有該方法的類稱為應(yīng)用程序的主類。不一定,但至多有一個public類。4set classpath=D:jdkjrelib;.;5. java和class6. java Bird 7. 獨行風(fēng)格(大括號獨占行)和行尾風(fēng)格(左大擴號在上一行行尾,右大括號獨占行)二、選擇題1B。2D。

2、 三、閱讀程序1(a)。(b)兩個字節(jié)碼,分別是和。(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高興認(rèn)識您 nice to meet you”習(xí)題2(第2章)一、問答題1用來標(biāo)識類名、變量名、方法名、類型名、數(shù)組名、文件名的有效字符序列稱為標(biāo)識符。標(biāo)識符由字母、下劃線、美元符號和數(shù)字組成,第一個字符不能是數(shù)字。false不是標(biāo)識符。2關(guān)鍵字就是Java語言中已經(jīng)被賦予特定意義的一些單詞,不可以把關(guān)鍵字作為名字來用。true和false不是關(guān)鍵字。6個關(guān)鍵字:class implements inter

3、face enum extends abstract。3boolean,char,byte,short,int,long,float,double。4float常量必須用F或f為后綴。double常量用D或d為后綴,但允許省略后綴。5一維數(shù)組名.length。二維數(shù)組名.length。二、選擇題1C。2ADF。3B。4BE。5【代碼2】【代碼3】【代碼4】【代碼5】。6B。三、閱讀或調(diào)試程序1屬于操作題,解答略。2屬于操作題,解答略。3屬于操作題,解答略。4【代碼1】:4?!敬a2】:b0=1。5【代碼1】:40。【代碼2】:7四、編寫程序1. public class E public st

4、atic void main(String args) '你'); '我'); '他'); 2. public class E public static void main (String args ) char cStart='',cEnd='' for(char c=cStart;c<=cEnd;c+) " "+c); 習(xí)題3(第3章)一、問答題1boolean2不可以3boolean4. 不是必須的5結(jié)束while語句的執(zhí)行6可以二、選擇題1A。 2C。 3C。三、閱讀程序1你,蘋

5、,甜2Jeep好好3x=-5,y=-1四、編程序題1public class Xiti1 public static void main(String args) double sum=0,a=1;int i=1; while(i<=20) sum=sum+a; i+; a=a*i; "sum="+sum); 2public class Xiti2 public static void main(String args) int i,j; for(j=2;j<=100;j+) for(i=2;i<=j/2;i+) if(j%i=0) break; if(i

6、>j/2) " "+j); 3class Xiti3 public static void main(String args) double sum=0,a=1,i=1; do sum=sum+a; i+; a=i)*a; while(i<=20); "使用do-while循環(huán)計算的sum="+sum); for(sum=0,i=1,a=1;i<=20;i+) a=a*i); sum=sum+a; "使用for循環(huán)計算的sum="+sum); 4public class Xiti4 public static voi

7、d main(String args) int sum=0,i,j; for(i=1;i<=1000;i+) for(j=1,sum=0;j<i;j+) if(i%j=0) sum=sum+j; if(sum=i) "完數(shù):"+i); 5public class Xiti5 public static void main(String args) int m=8,item=m,i=1; long sum=0; for(i=1,sum=0,item=m;i<=10;i+) sum=sum+item; item=item*10+m; 6 public clas

8、s Xiti6 public static void main(String args) int n=1; long sum=0; while(true) sum=sum+n; n+; if(sum>=8888) break; "滿足條件的最大整數(shù):"+(n-1); 習(xí)題4(第4章)一、問答題1. 封裝、繼承和多態(tài)。2當(dāng)類名由幾個單詞復(fù)合而成時,每個單詞的首字母使用大寫。3名字的首單詞的首字母使用小寫,如果變量的名字由多個單詞組成,從第2個單詞開始的其它單詞的首字母使用大寫。4屬性5行為6用類創(chuàng)建對象時。沒有類型7用類創(chuàng)建對象時。8一個類中可以有多個方法具有相同的名字

9、,但這些方法的參數(shù)必須不同,即或者是參數(shù)的個數(shù)不同,或者是參數(shù)的類型不同??梢浴?可以。不可以。10不可以。11一個類通過使用new運算符可以創(chuàng)建多個不同的對象,不同的對象的實例變量將被分配不同的內(nèi)存空間。所有對象的類變量都分配給相同的一處內(nèi)存,對象共享類變量。12代表調(diào)用當(dāng)前方法的對象。不可以。二、選擇題1B。2D。3D。4D。5CD。6【代碼1】【代碼4】。7【代碼4】。三、閱讀程序1【代碼1】:1,【代碼2】:121,【代碼3】:121。2sum=-100。3. 27。4【代碼1】:100,【代碼2】:。5. 上機實習(xí)題目,解答略。6. 上機實習(xí)題目,解答略。四、編程題public cl

10、ass CPU int speed; int getSpeed() return speed; public void setSpeed(int speed) = speed; public class HardDisk int amount; int getAmount() return amount; public void setAmount(int amount) = amount; public class PC CPU cpu; HardDisk HD; void setCPU(CPU cpu) = cpu; void setHardDisk(HardDisk HD) = HD;

11、void show() "CPU速度:"+(); "硬盤容量:"+(); public class Test public static void main(String args) CPU cpu = new CPU(); HardDisk HD=new HardDisk(); (2200); (200); PC pc =new PC(); (cpu); (HD); (); 習(xí)題5(第5章)一、問答題1不可以。2是。3不繼承。4聲明與父類同名的成員變量。5子類重寫的方法類型和父類的方法的類型一致或者是父類的方法的類型的子類型,重寫的方法的名字、參數(shù)個數(shù)

12、、參數(shù)的類型和父類的方法完全相同。重寫方法的目的是隱藏繼承的方法,子類通過方法的重寫可以把父類的狀態(tài)和行為改變?yōu)樽陨淼臓顟B(tài)和行為。6不可以。7abstract類。8上轉(zhuǎn)型對象不能操作子類新增的成員變量,不能調(diào)用子類新增的方法。上轉(zhuǎn)型對象可以訪問子類繼承或隱藏的成員變量,可以調(diào)用子類繼承的方法或子類重寫的實例方法。9通過重寫方法。10面向抽象編程目的是為了應(yīng)對用戶需求的變化,核心是讓類中每種可能的變化對應(yīng)地交給抽象類的一個子類類去負(fù)責(zé),從而讓該類的設(shè)計者不去關(guān)心具體實現(xiàn)。二、選擇題1C。2D。3CD。4D。5B。6B。7D。8B。9A。三、閱讀程序1【代碼1】:?!敬a2】:。2【代碼1】:11

13、?!敬a2】:11。3【代碼1】:?!敬a2】:12?!敬a3】:?!敬a4】:9。4【代碼1】:120?!敬a2】:120?!敬a3】:-100。四、編程題public abstract class Animal public abstract void cry(); public abstract String getAnimalName();public class Simulator public void playSound(Animal animal) "現(xiàn)在播放"+()+"類的聲音:"); (); public class Dog exte

14、nds Animal public void cry() "汪汪.汪汪"); public String getAnimalName() return "狗" public class Cat extends Animal public void cry() "喵喵.喵喵"); public String getAnimalName() return "貓" public class Example5_13 public static void main(String args) Simulator simulat

15、or = new Simulator(); (new Dog(); (new Cat(); 習(xí)題6(第6章)一、問答題1不能。2不能。3可以把實現(xiàn)某一接口的類創(chuàng)建的對象的引用賦給該接口聲明的接口變量中。那么該接口變量就可以調(diào)用被類實現(xiàn)的接口中的方法。4不可以。5可以。二、選擇題1D。2AB。3B。三、閱讀程序1【代碼1】:?!敬a2】:8。2【代碼1】:18?!敬a2】:15。四、編程題public interface Animal public abstract void cry(); public abstract String getAnimalName();public class S

16、imulator public void playSound(Animal animal) "現(xiàn)在播放"+()+"類的聲音:"); (); public class Dog implements Animal public void cry() "汪汪.汪汪"); public String getAnimalName() return "狗" public class Cat implements Animal public void cry() "喵喵.喵喵"); public String

17、 getAnimalName() return "貓" public class Example5_13 public static void main(String args) Simulator simulator = new Simulator(); (new Dog(); (new Cat(); 習(xí)題7(第7章)一、問答題1有效。2可以。3不可以。4一定是。二、選擇題1C。2C。三、閱讀程序1大家好,祝工作順利!2p是接口變量。3你好 fine thanks。4屬于上機實習(xí)程序,解答略。四、編程題import .*;public class E public sta

18、tic void main (String args ) Scanner reader = new Scanner; double sum = 0; int m = 0; while() double x = (); assert x< 100:"數(shù)據(jù)不合理" m = m+1; sum = sum+x; "%d個數(shù)的和為%fn",m,sum); "%d個數(shù)的平均值是%fn",m,sum/m); 習(xí)題8(第8章)一、問答題1不是。"hello"是。24和3。3false和true。4負(fù)數(shù)。5是true。63和-

19、1。7會發(fā)生NumberFormatException異常。二、選擇題1A。2C。3B。4D。5C。三、閱讀程序1【代碼】:蘋果。2【代碼】:Love:Game。3【代碼1】:15?!敬a2】:abc我們。4【代碼】:13579。5【代碼】:9javaHello。6屬于上機實習(xí)程序,解答略。7屬于上機實習(xí)程序,解答略。四、編程題1public class E public static void main (String args ) String s1,s2,t1="ABCDabcd" s1=(); s2=(); String s3=(s2); 2. public cla

20、ss E public static void main (String args ) String s="ABCDabcd" char cStart=(0); char cEnd = ()-1); 3. import .*;public class E public static void main (String args ) int year1,month1,day1,year2,month2,day2; try year1=(args0); month1=(args1); day1=(args2); year2=(args3); month2=(args4); da

21、y2=(args5); catch(NumberFormatException e) year1=2012; month1=0; day1=1; year2=2018; month2=0; day2=1; Calendar calendar=(); (year1,month1-1,day1); long timeYear1=(); (year2,month2-1,day2); long timeYear2=(); long 相隔天數(shù)=(timeYear1-timeYear2)/(1000*60*60*24); ""+year1+"年"+month1+&q

22、uot;月"+day1+"日和"+ year2+"年"+month2+"月"+day2+"日相隔"+相隔天數(shù)+"天"); 4. import .*;public class E public static void main (String args ) double a=0,b=0,c=0; a=12; b=24; c=; c=; c=(1); c=(8); 5public class E public static void main (String args ) String s

23、tr = "ab123you你是誰" String regex = "D+" str = (regex,""); 6 import .*;public class E public static void main(String args) String cost = "數(shù)學(xué)87分,物理76分,英語96分" Scanner scanner = new Scanner(cost); ("09.+"); double sum=0; int count =0; while() try double s

24、core = (); count+; sum = sum+score; catch(InputMismatchException exp) String t = (); "總分:"+sum+"分"); "平均分:"+sum/count+"分"); 習(xí)題9(第9章)一、問答題1Frame容器的默認(rèn)布局是BorderLayout布局。2不可以。3ActionEvent。4DocumentEvent。55個。6MouseMotionListener。二、選擇題1C。2A。3A。4D。5C。三、編程題1 import .*

25、;import .*;import class E public static void main(String args) Computer fr=new Computer(); class Computer extends JFrame implements DocumentListener JTextArea text1,text2; int count=1; double sum=0,aver=0; Computer() setLayout(new FlowLayout(); text1=new JTextArea(6,20); text2=new JTextArea(6,20); a

26、dd(new JScrollPane(text1); add(new JScrollPane(text2); (false); ().addDocumentListener(this); setSize(300,320); setVisible(true); validate(); setDefaultCloseOperation; public void changedUpdate(DocumentEvent e) String s=(); String a =("09.+"); sum=0; aver=0; for(int i=0;i<i+) try sum=su

27、m+(ai); catch(Exception ee) aver=sum/count; (null); ("n和:"+sum); ("n平均值:"+aver); public void removeUpdate(DocumentEvent e) changedUpdate(e); public void insertUpdate(DocumentEvent e) changedUpdate(e); 2. import .*;import .*;import class E public static void main(String args) Comp

28、uterFrame fr=new ComputerFrame(); class ComputerFrame extends JFrame implements ActionListener JTextField text1,text2,text3; JButton buttonAdd,buttonSub,buttonMul,buttonDiv; JLabel label; public ComputerFrame() setLayout(new FlowLayout(); text1=new JTextField(10); text2=new JTextField(10); text3=new

29、 JTextField(10); label=new JLabel(" ",; ; add(text1); add(label); add(text2); add(text3); buttonAdd=new JButton("加"); buttonSub=new JButton("減"); buttonMul=new JButton("乘"); buttonDiv=new JButton("除"); add(buttonAdd); add(buttonSub); add(buttonMul);

30、add(buttonDiv); (this); (this); (this); (this); setSize(300,320); setVisible(true); validate(); setDefaultCloseOperation; public void actionPerformed(ActionEvent e) double n; if()=buttonAdd) double n1,n2; try n1=(); n2=(); n=n1+n2; (n); ("+"); catch(NumberFormatException ee) ("請輸入數(shù)字字符

31、"); else if()=buttonSub) double n1,n2; try n1=(); n2=(); n=n1-n2; (n); ("-"); catch(NumberFormatException ee) ("請輸入數(shù)字字符"); else if()=buttonMul) double n1,n2; try n1=(); n2=(); n=n1*n2; (n); ("*"); catch(NumberFormatException ee) ("請輸入數(shù)字字符"); else if()=but

32、tonDiv) double n1,n2; try n1=(); n2=(); n=n1/n2; (n); ("/"); catch(NumberFormatException ee) ("請輸入數(shù)字字符"); validate(); 3. import .*;import .*;public class E public static void main(String args) Window win = new Window(); ("使用MVC結(jié)構(gòu)"); (100,100,420,260); class Window exten

33、ds JFrame implements ActionListener Lader lader; rim(); double bottom = ().trim(); double height = ().trim(); (above) ; (bottom); (height); double area = (); ("面積:"+area+"n"); catch(Exception ex) ("n"+ex+"n"); class Lader double above,bottom,height; public dou

34、ble getArea() double area = (above+bottom)*height/; return area; public void setAbove(double a) above = a; public void setBottom(double b) bottom = b; public void setHeight(double c) height = c; 習(xí)題10(第10章)一、問答題1使用FileInputStream。2FileInputStream按字節(jié)讀取文件,F(xiàn)ileReader按字符讀取文件。3不可以。4使用對象流寫入或讀入對象時,要保證對象是序列化

35、的。5使用對象流很容易得獲取一個序列化對象的克隆,只需將該對象寫入到對象輸出流,那么用對象輸入流讀回的對象一定是原對象的一個克隆。二、選擇題1C。2B。三、閱讀程序1【代碼1】:51?!敬a2】:0。2【代碼1】:3。【代碼2】:abc?!敬a3】:1?!敬a4】:dbc。3上機實習(xí)題,解答略。四、編程題1 import .*;public class E public static void main(String args) File f=new File(""); try RandomAccessFile random=new RandomAccessFile(f,&

36、quot;rw"); (0); long m=(); while(m>=0) m=m-1; (m); int c=(); if(c<=255&&c>=0) else m=m-1; (m); byte cc=new byte2; (cc); String(cc); catch(Exception exp) 2. import .*;public class E public static void main(String args ) File file=new File(""); File tempFile=new File(&q

37、uot;"); try FileReader inOne=new FileReader(file); BufferedReader inTwo= new BufferedReader(inOne); FileWriter tofile=new FileWriter(tempFile); BufferedWriter out= new BufferedWriter(tofile); String s=null; int i=0; s=(); while(s!=null) i+; (i+" "+s); (); s=(); (); (); (); (); (); cat

38、ch(IOException e) 3. import .*;import .*;public class E public static void main(String args) File file = new File(""); Scanner sc = null; double sum=0; int count = 0; try sc = new Scanner(file); ("09.+"); while() try double price = (); count+; sum = sum+price; catch(InputMismatch

39、Exception exp) String t = (); "平均價格:"+sum/count); catch(Exception exp) 習(xí)題11(第11章)一、問答題1在MySQL安裝目錄的bin子目錄下鍵入mysqld或mysqld -nt 啟動MySQL數(shù)據(jù)庫服務(wù)器。2復(fù)制到JDK的擴展目錄中(即JAVA_HOME環(huán)境變量指定的JDK,見第1章的),比如:E:jrelibext。3減輕數(shù)據(jù)庫內(nèi)部SQL語句解釋器的負(fù)擔(dān)。4事務(wù)由一組SQL語句組成,所謂事務(wù)處理是指:應(yīng)用程序保證事務(wù)中的SQL語句要么全部都執(zhí)行,要么一個都不執(zhí)行。事務(wù)處理步驟是調(diào)用:(1)連接對象用s

40、etAutoCommit()方法關(guān)閉自動提交模式,(2)連接對象用commit()方法處理事務(wù),(3)連接對象用rollback()方法處理事務(wù)失敗。二、編程題1. 同時用到了例子2中的GetDBConnection類。import .*;import .*; public class BianCheng1 public static void main(String args) Connection con; Statement sql; ResultSet rs; con = ("students","root",""); if(

41、con = null ) return; String sqlStr = "select * from mess order by birthday" try sql=(); rs = (sqlStr); while() String number=(1); String name=(2); Date date=(3); float height=(4); "%st",number); "%st",name); "%st",date); "%.2fn",height); (); catch(SQ

42、LException e) 2. 同時用到了例子6中的Query類。import .*;public class BianCheng2 public static void main(String args) String tableHead; String content; JTable table ; JFrame win= new JFrame(); Query findRecord = new Query(); (args0); ("select * from "+args1); content = (); tableHead=(); table = new JTa

43、ble(content,tableHead); (new JScrollPane(table); (12,100,400,200); (true); ; 習(xí)題12(第12章)一、問答題14種狀態(tài):新建、運行、中斷和死亡。2有4種原因的中斷:(1)JVM將CPU資源從當(dāng)前線程切換給其他線程,使本線程讓出CPU的使用權(quán)處于中斷狀態(tài)。(2)線程使用CPU資源期間,執(zhí)行了sleep(int millsecond)方法,使當(dāng)前線程進入休眠狀態(tài)。(3)線程使用CPU資源期間,執(zhí)行了wait()方法,使得當(dāng)前線程進入等待狀態(tài)。(4)線程使用CPU資源期間,執(zhí)行某個操作進入阻塞狀態(tài),比如執(zhí)行讀/寫操作引起阻塞

44、。3死亡狀態(tài),不能再調(diào)用start()方法。4新建和死亡狀態(tài)。5兩種方法:用Thread類或其子類。6使用 setPrority(int grade)方法。7Java使我們可以創(chuàng)建多個線程,在處理多線程問題時,我們必須注意這樣一個問題:當(dāng)兩個或多個線程同時訪問同一個變量,并且一個線程需要修改這個變量。我們應(yīng)對這樣的問題作出處理,否則可能發(fā)生混亂。8當(dāng)一個線程使用的同步方法中用到某個變量,而此變量又需要其它線程修改后才能符合本線程的需要,那么可以在同步方法中使用wait()方法。使用wait方法可以中斷方法的執(zhí)行,使本線程等待,暫時讓出CPU的使用權(quán),并允許其它線程使用這個同步方法。其它線程如果在使用這個同步方法時不需要等待,那么它使用完這個同步方法的同時,應(yīng)當(dāng)用notifyAll()方法通知所有的由于使用這個同步方法而處于等待的線程結(jié)束等待。9不合理。10“吵醒”休眠的線程。一個占有CPU資源的線程可以讓休

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論