java基礎教程第3版習題解答_第1頁
java基礎教程第3版習題解答_第2頁
java基礎教程第3版習題解答_第3頁
java基礎教程第3版習題解答_第4頁
java基礎教程第3版習題解答_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Java基礎教程第3版習題解答第一章習題1. James Gosling2 需3個步驟:1) 用文本編輯器編寫源文件 2) 使用javac編譯源文件,得到字節碼文件3) 應用程序使用解釋器運行。3. path d:jdkbin classpath =d:jdkjrelibrt.jar;.;4 B5. java 和 class6 D。第二章習題1用來標識類名、變量名、方法名、類型名、數組名、文件名的有效字符序列稱為標識符。標識符由字母、下劃線、美元符號和數字組成,第一個字符不能是數字。false不是標識符。2關鍵字就是Java語言中已經被賦予特定意義的一些單詞,不可以把關鍵字作為名字來用。不是關

2、鍵字。class implements interface enum extends abstract。3float常量必須用F或f為后綴。double常量用D或d為后綴,但允許省略后綴。4一維數組名.length。二維數組名.length。5. C6ADF7. B8 【代碼2】【代碼3】【代碼4】9B。10屬于操作題,解答略。113,112. public class E public static void main(String args) System.out.println(int)'你'); System.out.println(int)'我');

3、System.out.println(int)'他'); 13.public class E public static void main (String args ) char cStart='',cEnd='' for(char c=cStart;c<=cEnd;c+) System.out.print(" "+c); 第三章習題1. 1102beep!3public class E public static void main (String args ) for(char c='' c<

4、=''c+) System.out.print(" "+c); 4. public class Xiti3_4 public static void main(String args) double sum=0,a=1;int i=1; while(i<=20) sum=sum+a; i+; a=a*i; System.out.println("sum="+sum); 5public class Xiti5 public static void main(String args) int i,j; for(j=2;j<=100

5、;j+) for(i=2;i<=j/2;i+) if(j%i=0) break; if(i>j/2) System.out.print(" "+j); 6class Xiti6 public static void main(String args) double sum=0,a=1,i=1; do sum=sum+a; i+; a=(1.0/i)*a; while(i<=20); System.out.println("使用do-while循環計算的sum="+sum); for(sum=0,i=1,a=1;i<=20;i+)

6、a=a*(1.0/i); sum=sum+a; System.out.println("使用for循環計算的sum="+sum); 7class Xiti7 public static void 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) System.out.println("完數:"+i); 8import java.util.*;public class E public

7、 static void main (String args ) int m,n; Scanner scaner= new Scanner(System.in); System.out.println("輸入正數m回車確認"); m = scaner.nextInt(); System.out.println("輸入正數n回車確認"); n = scaner.nextInt(); int p=m; int q= n; int r = m%n; while(r!=0) m = n; n =r; r =m%n; System.out.println(p+&q

8、uot;和"+q+"的最大公約數"+n); System.out.println(p+"和"+q+"的最小公倍數"+(p*q)/n); 9public class E public static void main(String args) int n=1; long sum=0; while(true) sum=sum+n; n+; if(sum>=8888) break; System.out.println("滿足條件的最大整數:"+(n-1); 第四章習題1 用該類創建對象時。2 一個類中可

9、以有多個方法具有相同的名字,但這些方法的參數必須不同,即或者是參數的個數不同,或者是參數的類型不同3 可以。不可以。4 不可以。5. sum=-100。6. 27第五章習題1.如果子類和父類不在同一個包中,那么,子類繼承了父類的protected、public成員變量做為子類的成員變量,并且繼承了父類的protected、public方法為子類的方法。如果子類和父類不在同一個包里,子類不能繼承父類的友好變量和友好方法。2.不可以。3abstract類。4. 假設B類是A類子類或間接子類,當我們用子類B創建一個對象,并把這個對象的引用放到A類的對象中時,稱這個A類對象是子類對象的上轉型對象。5.

10、 D。8.0 12第六章習題1接口中能聲明變量嗎? 不能2接口中能定義非抽象方法嗎? 不能3什么叫接口的回調? 可以把實現某一接口的類創建的對象的引用賦給該接口聲明的接口變量中。那么該接口變量就可以調用被類實現的接口中的方法。4請說出E類中System.out.println的輸出結果。 18 15第7章習題1內部類的外嵌類的成員變量在內部類中仍然有效嗎? 有效。2內部類中的方法也可以調用外嵌類中的方法嗎? 可以。3內部類的類體中可以聲明類變量和類方法嗎? 不可以。4匿名類一定是內部類嗎? 一定是。5請說出下列程序的輸出結果。 大家好,祝工作順利!6請說出下列程序的輸出結果。 p是接口變量7請

11、說出下列程序的輸出結果。 你好 fine thanks第8章習題1不是。"hello"是。24和3。3false和true。4負數。5是true。63和-1。7會發生NumberFormatException異常。8. 蘋果9 【代碼1】:15。【代碼2】:abc我們。10public class E public static void main (String args ) String s1,s2,t1="ABCDabcd" s1=t1.toUpperCase(); s2=t1.toLowerCase(); System.out.println(s

12、1); System.out.println(s2); String s3=s1.concat(s2); System.out.println(s3); 11. public class E public static void main (String args ) String s="ABCDabcd" char cStart=s.charAt(0); char cEnd = s.charAt(s.length()-1); System.out.println(cStart); System.out.println(cEnd); 12. import java.util

13、.*;public class E public static void main (String args ) int year1,month1,day1,year2,month2,day2; try year1=Integer.parseInt(args0); month1=Integer.parseInt(args1); day1=Integer.parseInt(args2); year2=Integer.parseInt(args3); month2=Integer.parseInt(args4); day2=Integer.parseInt(args5); catch(Number

14、FormatException e) year1=2012; month1=0; day1=1; year2=2018; month2=0; day2=1; Calendar calendar=Calendar.getInstance(); calendar.set(year1,month1-1,day1); long timeYear1=calendar.getTimeInMillis(); calendar.set(year2,month2-1,day2); long timeYear2=calendar.getTimeInMillis(); long 相隔天數=Math.abs(time

15、Year1-timeYear2)/(1000*60*60*24); System.out.println(""+year1+"年"+month1+"月"+day1+"日和"+ year2+"年"+month2+"月"+day2+"日相隔"+相隔天數+"天"); 13. import java.util.*;public class E public static void main (String args ) double a=0,b

16、=0,c=0; a=12; b=24; c=Math.asin(0.56); System.out.println(c); c=Math.cos(3.14); System.out.println(c); c=Math.exp(1); System.out.println(c); c=Math.log(8); System.out.println(c); 14 import java.util.*;public class E public static void main(String args) String cost = "數學87分,物理76分,英語96分" Sca

17、nner scanner = new Scanner(cost); scanner.useDelimiter("0123456789.+"); double sum=0; int count =0; while(scanner.hasNext() try double score = scanner.nextDouble(); count+; sum = sum+score; System.out.println(score); catch(InputMismatchException exp) String t = scanner.next(); System.out.p

18、rintln("總分:"+sum+"分"); System.out.println("平均分:"+sum/count+"分"); 第9章習題1使用FileInputStream。2FileInputStream按字節讀取文件,FileReader按字符讀取文件。3不可以。4使用對象流寫入或讀入對象時,要保證對象是序列化的。5 import java.io.*;public class E public static void main(String args) File f=new File("E.jav

19、a"); try RandomAccessFile random=new RandomAccessFile(f,"rw"); random.seek(0); long m=random.length(); while(m>=0) m=m-1; random.seek(m); int c=random.readByte(); if(c<=255&&c>=0) System.out.print(char)c); else m=m-1; random.seek(m); byte cc=new byte2; random.readFull

20、y(cc); System.out.print(new String(cc); catch(Exception exp) 6. import java.io.*;public class E public static void main(String args ) File file=new File("E.java"); File tempFile=new File("temp.txt"); try FileReader inOne=new FileReader(file); BufferedReader inTwo= new BufferedRea

21、der(inOne); FileWriter tofile=new FileWriter(tempFile); BufferedWriter out= new BufferedWriter(tofile); String s=null; int i=0; s=inTwo.readLine(); while(s!=null) i+; out.write(i+" "+s); out.newLine(); s=inTwo.readLine(); inOne.close(); inTwo.close(); out.flush(); out.close(); tofile.close

22、(); catch(IOException e) 7 屬于操作題,解答略第10章習題1(1)添加數據源,(2)選擇驅動程序,(3)命名數據源名稱。2不必使用數據庫名稱。3事務由一組SQL語句組成,所謂事務處理是指:應用程序保證事務中的SQL語句要么全部都執行,要么一個都不執行。4. import java.sql.*;import java.util.*;public class E public static void main(String args) Query query=new Query(); String dataSource="myData" String

23、tableName="goods" Scanner read=new Scanner(System.in); System.out.print("輸入數據源名:"); dataSource = read.nextLine(); System.out.print("輸入表名:"); tableName = read.nextLine(); query.setDatasourceName(dataSource); query.setTableName(tableName); query.setSQL("SELECT * FROM

24、 "+tableName); query.inputQueryResult(); class Query String datasourceName="" /數據源名 String tableName="" /表名 String SQL; /SQL語句 public Query() try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); catch(ClassNotFoundException e) System.out.print(e); public void setData

25、sourceName(String s) datasourceName = s.trim(); public void setTableName(String s) tableName = s.trim(); public void setSQL(String SQL) this.SQL = SQL.trim(); public void inputQueryResult() Connection con; Statement sql; ResultSet rs; try String uri = "jdbc:odbc:"+datasourceName; String id

26、 = "" String password = "" con = DriverManager.getConnection(uri,id,password); DatabaseMetaData metadata = con.getMetaData(); ResultSet rs1 = metadata.getColumns(null,null,tableName,null); int 字段個數 = 0; while(rs1.next() 字段個數+; sql = con.createStatement(); rs = sql.executeQuery(SQ

27、L); while(rs.next() for(int k=1;k<=字段個數;k+) System.out.print(" "+rs.getString(k)+" "); System.out.println(""); con.close(); catch(SQLException e) System.out.println("請輸入正確的表名"+e); 5. import java.sql.*;import java.util.*;public class E public static void mai

28、n(String args) Query query = new Query(); String dataSource = "myData" String tableName = "goods" query.setDatasourceName(dataSource); query.setTableName(tableName); String name = "" Scanner read=new Scanner(System.in); System.out.print("商品名:"); name = read.ne

29、xtLine(); String str="'%"+name+"%'" String SQL = "SELECT * FROM "+tableName+" WHERE name LIKE "+str; query.setSQL(SQL); System.out.println(tableName+"表中商品名是"+name+"的記錄"); query.inputQueryResult(); class Query String datasourceName=&

30、quot;" /數據源名 String tableName="" /表名 String SQL; /SQL語句 public Query() try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); catch(ClassNotFoundException e) System.out.print(e); public void setDatasourceName(String s) datasourceName = s.trim(); public void setTableName(String s

31、) tableName = s.trim(); public void setSQL(String SQL) this.SQL = SQL.trim(); public void inputQueryResult() Connection con; Statement sql; ResultSet rs; try String uri = "jdbc:odbc:"+datasourceName; String id = "" String password = "" con = DriverManager.getConnection(

32、uri,id,password); DatabaseMetaData metadata = con.getMetaData(); ResultSet rs1 = metadata.getColumns(null,null,tableName,null); int 字段個數 = 0; while(rs1.next() 字段個數+; sql = con.createStatement(); rs = sql.executeQuery(SQL); while(rs.next() for(int k=1;k<=字段個數;k+) System.out.print(" "+rs.

33、getString(k)+" "); System.out.println(""); con.close(); catch(SQLException e) System.out.println("請輸入正確的表名"+e); 第11章習題1Frame容器的默認布局是BorderLayout布局,Panel容器的默認布局是FlowLayout布局。2不可以3 import java.awt.*;import javax.swing.event.*;import javax.swing.*;import java.awt.event.*;p

34、ublic 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); add(new JScro

35、llPane(text1); add(new JScrollPane(text2); text2.setEditable(false); (text1.getDocument().addDocumentListener(this); setSize(300,320); setVisible(true); validate(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); public void changedUpdate(DocumentEvent e) String s=text1.getText(); String a =s.spl

36、it("0123456789.+"); sum=0; aver=0; for(int i=0;i<a.length;i+) try sum=sum+Double.parseDouble(ai); catch(Exception ee) aver=sum/count; text2.setText(null); text2.append("n和:"+sum); text2.append("n平均值:"+aver); public void removeUpdate(DocumentEvent e) changedUpdate(e);

37、 public void insertUpdate(DocumentEvent e) changedUpdate(e); 4. import java.awt.*;import javax.swing.event.*;import javax.swing.*;import java.awt.event.*;public class E public static void main(String args) ComputerFrame fr=new ComputerFrame(); class ComputerFrame extends JFrame implements ActionList

38、ener 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 JTextField(10); label=new JLabel(" ",JLabel.CENTER); label.setBackground(Color.

39、green); 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); add(buttonDiv); buttonAdd.addActionListener(

40、this); buttonSub.addActionListener(this); buttonMul.addActionListener(this); buttonDiv.addActionListener(this); setSize(300,320); setVisible(true); validate(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); public void actionPerformed(ActionEvent e) double n; if(e.getSource()=buttonAdd) double n

41、1,n2; try n1=Double.parseDouble(text1.getText(); n2=Double.parseDouble(text2.getText(); n=n1+n2; text3.setText(String.valueOf(n); label.setText("+"); catch(NumberFormatException ee) text3.setText("請輸入數字字符"); else if(e.getSource()=buttonSub) double n1,n2; try n1=Double.parseDouble

42、(text1.getText(); n2=Double.parseDouble(text2.getText(); n=n1-n2; text3.setText(String.valueOf(n); label.setText("-"); catch(NumberFormatException ee) text3.setText("請輸入數字字符"); else if(e.getSource()=buttonMul) double n1,n2; try n1=Double.parseDouble(text1.getText(); n2=Double.par

43、seDouble(text2.getText(); n=n1*n2; text3.setText(String.valueOf(n); label.setText("*"); catch(NumberFormatException ee) text3.setText("請輸入數字字符"); else if(e.getSource()=buttonDiv) double n1,n2; try n1=Double.parseDouble(text1.getText(); n2=Double.parseDouble(text2.getText(); n=n1/

44、n2; text3.setText(String.valueOf(n); label.setText("/"); catch(NumberFormatException ee) text3.setText("請輸入數字字符"); validate(); 53. import java.awt.*;import java.awt.event.*;import javax.swing.*;public class E public static void main(String args) Window win = new Window(); win.set

45、Title("使用MVC結構"); win.setBounds(100,100,420,260); class Window extends JFrame implements ActionListener Lader lader; /模型 JTextField textAbove,textBottom,textHeight; /視圖 JTextArea showArea; /視圖 JButton controlButton; /控制器 Window() init(); setVisible(true); setDefaultCloseOperation(JFrame.EX

46、IT_ON_CLOSE); void init() lader = new Lader(); textAbove = new JTextField(5); textBottom = new JTextField(5); textHeight = new JTextField(5); showArea = new JTextArea(); controlButton=new JButton("計算面積"); JPanel pNorth=new JPanel(); pNorth.add(new JLabel("上底:"); pNorth.add(textAbove); pNorth.add(new JLabel("下底:"); pNorth.add(textBo

溫馨提示

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

評論

0/150

提交評論