版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、習題解答習題1(第1章)一、問答題1James Gosling2需3個步驟:1) 用文本編輯器編寫源文件。 2) 使用javac編譯源文件,得到字節(jié)碼文件。3) 使用解釋器運行程序。3源文件由若干個類所構成。對于應用程序,必須有一個類含有public static void main(String args)的方法,含有該方法的類稱為應用程序的主類。不一定,但至多有一個public類。4set classpath=D:jdkjrelibrt.jar;.;5. java和class6. java Bird 7. 獨行風格(大括號獨占行)和行尾風格(左大擴號在上一行行尾,右大括號獨占行)二、選擇題
2、1B。2D。 三、閱讀程序1(a)Person.java。(b)兩個字節(jié)碼,分別是Person.class和Xiti.class。(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高興認識您 nice to meet you”習題2(第2章)一、問答題1用來標識類名、變量名、方法名、類型名、數(shù)組名、文件名的有效字符序列稱為標識符。標識符由字母、下劃線、美元符號和數(shù)字組成,第一個字符不能是數(shù)字。false不是標識符。2關鍵字就是Java語言中已經(jīng)被賦予特定意義的一些單詞,不可以把關鍵字作為名字來用。true和
3、false不是關鍵字。6個關鍵字:class implements interface 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。【代碼2】:b0=1。5【代碼1】:40?!?/p>
4、代碼2】:7四、編寫程序1. public class E public static void main(String args) System.out.println(int)'你'); System.out.println(int)'我'); System.out.println(int)'他'); 2. public class E public static void main (String args ) char cStart='',cEnd='' for(char c=cStart;c<=cE
5、nd;c+) System.out.print(" "+c); 習題3(第3章)一、問答題1boolean2不可以3boolean4. 不是必須的5結束while語句的執(zhí)行6可以二、選擇題1A。 2C。 3C。三、閱讀程序1你,蘋,甜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; System.out.println("sum=
6、"+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>j/2) System.out.print(" "+j); 3class Xiti3 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&l
7、t;=20); System.out.println("使用do-while循環(huán)計算的sum="+sum); for(sum=0,i=1,a=1;i<=20;i+) a=a*(1.0/i); sum=sum+a; System.out.println("使用for循環(huán)計算的sum="+sum); 4public class Xiti4 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
8、) sum=sum+j; if(sum=i) System.out.println("完數(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; System.out.println(sum); 6 public class Xiti6 public static void main(String args) in
9、t n=1; long sum=0; while(true) sum=sum+n; n+; if(sum>=8888) break; System.out.println("滿足條件的最大整數(shù):"+(n-1); 習題4(第4章)一、問答題1. 封裝、繼承和多態(tài)。2當類名由幾個單詞復合而成時,每個單詞的首字母使用大寫。3名字的首單詞的首字母使用小寫,如果變量的名字由多個單詞組成,從第2個單詞開始的其它單詞的首字母使用大寫。4屬性5行為6用類創(chuàng)建對象時。沒有類型7用類創(chuàng)建對象時。8一個類中可以有多個方法具有相同的名字,但這些方法的參數(shù)必須不同,即或者是參數(shù)的個數(shù)不同,或者
10、是參數(shù)的類型不同。可以。9可以。不可以。10不可以。11一個類通過使用new運算符可以創(chuàng)建多個不同的對象,不同的對象的實例變量將被分配不同的內(nèi)存空間。所有對象的類變量都分配給相同的一處內(nèi)存,對象共享類變量。12代表調(diào)用當前方法的對象。不可以。二、選擇題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】:20.0。5. 上機實習題目,解答略。6. 上機實習題目,解答略。四、編程題CPU.javapublic class CPU int spee
11、d; int getSpeed() return speed; public void setSpeed(int speed) this.speed = speed; HardDisk.javapublic class HardDisk int amount; int getAmount() return amount; public void setAmount(int amount) this.amount = amount; PC.javapublic class PC CPU cpu; HardDisk HD; void setCPU(CPU cpu) this.cpu = cpu;
12、void setHardDisk(HardDisk HD) this.HD = HD; void show() System.out.println("CPU速度:"+cpu.getSpeed(); System.out.println("硬盤容量:"+HD.getAmount(); Test.javapublic class Test public static void main(String args) CPU cpu = new CPU(); HardDisk HD=new HardDisk(); cpu.setSpeed(2200); HD.s
13、etAmount(200); PC pc =new PC(); pc.setCPU(cpu); pc.setHardDisk(HD); pc.show(); 習題5(第5章)一、問答題1不可以。2是。3不繼承。4聲明與父類同名的成員變量。5子類重寫的方法類型和父類的方法的類型一致或者是父類的方法的類型的子類型,重寫的方法的名字、參數(shù)個數(shù)、參數(shù)的類型和父類的方法完全相同。重寫方法的目的是隱藏繼承的方法,子類通過方法的重寫可以把父類的狀態(tài)和行為改變?yōu)樽陨淼臓顟B(tài)和行為。6不可以。7abstract類。8上轉型對象不能操作子類新增的成員變量,不能調(diào)用子類新增的方法。上轉型對象可以訪問子類繼承或隱藏的成
14、員變量,可以調(diào)用子類繼承的方法或子類重寫的實例方法。9通過重寫方法。10面向抽象編程目的是為了應對用戶需求的變化,核心是讓類中每種可能的變化對應地交給抽象類的一個子類類去負責,從而讓該類的設計者不去關心具體實現(xiàn)。二、選擇題1C。2D。3CD。4D。5B。6B。7D。8B。9A。三、閱讀程序1【代碼1】:15.0?!敬a2】:8.0。2【代碼1】:11?!敬a2】:11。3【代碼1】:98.0?!敬a2】:12?!敬a3】:98.0。【代碼4】:9。4【代碼1】:120。【代碼2】:120?!敬a3】:-100。四、編程題Animal.javapublic abstract class Anim
15、al public abstract void cry(); public abstract String getAnimalName();Simulator.javapublic class Simulator public void playSound(Animal animal) System.out.print("現(xiàn)在播放"+animal.getAnimalName()+"類的聲音:"); animal.cry(); Dog.javapublic class Dog extends Animal public void cry() System.
16、out.println("汪汪.汪汪"); public String getAnimalName() return "狗" Cat.javapublic class Cat extends Animal public void cry() System.out.println("喵喵.喵喵"); public String getAnimalName() return "貓" Application.javapublic class Example5_13 public static void main(Stri
17、ng args) Simulator simulator = new Simulator(); simulator.playSound(new Dog(); simulator.playSound(new Cat(); 習題6(第6章)一、問答題1不能。2不能。3可以把實現(xiàn)某一接口的類創(chuàng)建的對象的引用賦給該接口聲明的接口變量中。那么該接口變量就可以調(diào)用被類實現(xiàn)的接口中的方法。4不可以。5可以。二、選擇題1D。2AB。3B。三、閱讀程序1【代碼1】:15.0?!敬a2】:8。2【代碼1】:18?!敬a2】:15。四、編程題Animal.javapublic interface Animal pu
18、blic abstract void cry(); public abstract String getAnimalName();Simulator.javapublic class Simulator public void playSound(Animal animal) System.out.print("現(xiàn)在播放"+animal.getAnimalName()+"類的聲音:"); animal.cry(); Dog.javapublic class Dog implements Animal public void cry() System.ou
19、t.println("汪汪.汪汪"); public String getAnimalName() return "狗" Cat.javapublic class Cat implements Animal public void cry() System.out.println("喵喵.喵喵"); public String getAnimalName() return "貓" Application.javapublic class Example5_13 public static void main(Str
20、ing args) Simulator simulator = new Simulator(); simulator.playSound(new Dog(); simulator.playSound(new Cat(); 習題7(第7章)一、問答題1有效。2可以。3不可以。4一定是。二、選擇題1C。2C。三、閱讀程序1大家好,祝工作順利!2p是接口變量。3你好 fine thanks。4屬于上機實習程序,解答略。四、編程題import java.util.*;public class E public static void main (String args ) Scanner reader
21、 = new Scanner(System.in); double sum = 0; int m = 0; while(reader.hasNextDouble() double x = reader.nextDouble(); assert x< 100:"數(shù)據(jù)不合理" m = m+1; sum = sum+x; System.out.printf("%d個數(shù)的和為%fn",m,sum); System.out.printf("%d個數(shù)的平均值是%fn",m,sum/m); 習題8(第8章)一、問答題1不是。"hel
22、lo"是。24和3。3false和true。4負數(shù)。5是true。63和-1。7會發(fā)生NumberFormatException異常。二、選擇題1A。2C。3B。4D。5C。三、閱讀程序1【代碼】:蘋果。2【代碼】:Love:Game。3【代碼1】:15?!敬a2】:abc我們。4【代碼】:13579。5【代碼】:9javaHello。6屬于上機實習程序,解答略。7屬于上機實習程序,解答略。四、編程題1public class E public static void main (String args ) String s1,s2,t1="ABCDabcd" s
23、1=t1.toUpperCase(); s2=t1.toLowerCase(); System.out.println(s1); System.out.println(s2); String s3=s1.concat(s2); System.out.println(s3); 2. 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.pri
24、ntln(cStart); System.out.println(cEnd); 3. import java.util.*;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.
25、parseInt(args4); day2=Integer.parseInt(args5); catch(NumberFormatException 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 ti
26、meYear2=calendar.getTimeInMillis(); long 相隔天數(shù)=Math.abs(timeYear1-timeYear2)/(1000*60*60*24); System.out.println(""+year1+"年"+month1+"月"+day1+"日和"+ year2+"年"+month2+"月"+day2+"日相隔"+相隔天數(shù)+"天"); 4. import java.util.*;public c
27、lass E public static void main (String args ) double a=0,b=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); 5public class E public static void main (String args ) String s
28、tr = "ab123you你是誰?" String regex = "D+" str = str.replaceAll(regex,""); System.out.println(str); 6 import java.util.*;public class E public static void main(String args) String cost = "數(shù)學87分,物理76分,英語96分" Scanner scanner = new Scanner(cost); scanner.useDelimite
29、r("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.println("總分:"+sum+"分"); System.out
30、.println("平均分:"+sum/count+"分"); 習題9(第9章)一、問答題1Frame容器的默認布局是BorderLayout布局。2不可以。3ActionEvent。4DocumentEvent。55個。6MouseMotionListener。二、選擇題1C。2A。3A。4D。5C。三、編程題1 import java.awt.*;import javax.swing.event.*;import javax.swing.*;import java.awt.event.*;public class E public static vo
31、id 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 JScrollPane(text1); add(new JScroll
32、Pane(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.split("0123456789.+");
33、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); public void insertUpdate(Docu
34、mentEvent e) changedUpdate(e); 2. 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 ActionListener JTextField text1,text2,te
35、xt3; 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.green); add(text1); add(label)
36、; 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(this); buttonSub.addActionList
37、ener(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 n1,n2; try n1=Double.parseDoubl
38、e(text1.getText(); n2=Double.parseDouble(text2.getText(); n=n1+n2; text3.setText(String.valueOf(n); label.setText("+"); catch(NumberFormatException ee) text3.setText("請輸入數(shù)字字符"); else if(e.getSource()=buttonSub) double n1,n2; try n1=Double.parseDouble(text1.getText(); n2=Double.pa
39、rseDouble(text2.getText(); n=n1-n2; text3.setText(String.valueOf(n); label.setText("-"); catch(NumberFormatException ee) text3.setText("請輸入數(shù)字字符"); else if(e.getSource()=buttonMul) double n1,n2; try n1=Double.parseDouble(text1.getText(); n2=Double.parseDouble(text2.getText(); n=n1
40、*n2; text3.setText(String.valueOf(n); label.setText("*"); catch(NumberFormatException ee) text3.setText("請輸入數(shù)字字符"); else if(e.getSource()=buttonDiv) double n1,n2; try n1=Double.parseDouble(text1.getText(); n2=Double.parseDouble(text2.getText(); n=n1/n2; text3.setText(String.value
41、Of(n); label.setText("/"); catch(NumberFormatException ee) text3.setText("請輸入數(shù)字字符"); validate(); 3. import java.awt.*;import java.awt.event.*;import javax.swing.*;public class E public static void main(String args) Window win = new Window(); win.setTitle("使用MVC結構"); win
42、.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.EXIT_ON_CLOSE); void init() lader
43、 = 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(&qu
44、ot;下底:"); pNorth.add(textBottom); pNorth.add(new JLabel("高:"); pNorth.add(textHeight); pNorth.add(controlButton); controlButton.addActionListener(this); add(pNorth,BorderLayout.NORTH); add(new JScrollPane(showArea),BorderLayout.CENTER); public void actionPerformed(ActionEvent e) try d
45、ouble above = Double.parseDouble(textAbove.getText().trim(); double bottom = Double.parseDouble(textBottom.getText().trim(); double height = Double.parseDouble(textHeight.getText().trim(); lader.setAbove(above) ; lader.setBottom(bottom); lader.setHeight(height); double area = lader.getArea(); showAr
46、ea.append("面積:"+area+"n"); catch(Exception ex) showArea.append("n"+ex+"n"); class Lader double above,bottom,height; public double getArea() double area = (above+bottom)*height/2.0; return area; public void setAbove(double a) above = a; public void setBottom(double b) bottom = b; public void setHeight(double c) height = c; 習題10(第10章)一、問答題1使用FileInputStream。2FileInputStream按字節(jié)讀取文件,F(xiàn)ileReader按字符讀取文件。3不可以。4使用對象流寫入或讀入對象時,要保證對象是序列化的。5使用對象流
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度電動汽車充電站用電安全責任協(xié)議書3篇
- 《人的生殖》課件
- 《魅力長垣家鄉(xiāng)介紹》課件
- 完整創(chuàng)意思維與問題解決方法
- 工程窗子銷售合同范例
- 物品換合同范例
- epc合同范例設計
- 通知簽訂代理經(jīng)銷合同范例
- 課題開發(fā)合同范例
- 紅糖采購合同范例
- 企業(yè)激勵員工所面臨的困境及對策
- GB 16804-1997氣瓶警示標簽
- 國開作業(yè)《建筑制圖基礎》學習過程表現(xiàn)參考22
- 食品安全BRCGS包裝材料全球標準第六版管理手冊及程序文件
- 排列3,3D終極教程
- 高中政治必修二 1.1《公有制為主體 多種所有制經(jīng)濟共同發(fā)展》集體備課課件
- 鹽化工產(chǎn)業(yè)鏈
- DB62∕T 3176-2019 建筑節(jié)能與結構一體化墻體保溫系統(tǒng)應用技術規(guī)程
- 消費者行為學50年:演化與顛覆
- T∕CTES 1035-2021 透明質酸鈉紡織品 保濕性能的檢測與評價
- 煙草設備ppt課件
評論
0/150
提交評論