《Java基礎(chǔ)入門》-課后習(xí)題答案(共24頁(yè))
《《Java基礎(chǔ)入門》-課后習(xí)題答案(共24頁(yè))》由會(huì)員分享,可在線閱讀,更多相關(guān)《《Java基礎(chǔ)入門》-課后習(xí)題答案(共24頁(yè))(24頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、精選優(yōu)質(zhì)文檔-----傾情為你奉上 《Java基礎(chǔ)入門》課后習(xí)題答案 第1章 Java開發(fā)入門 一、填空題 1、 Java EE、Java SE、Java ME 2、 JRE 3、 javac 4、 bin 5、 path、classpath 二、選擇題 1、ABCD 2、C 3、D 4、B 5、B 三、簡(jiǎn)答題 1、 面向?qū)ο?、跨平臺(tái)性、健壯性、安全性、可移植性、多線程性、動(dòng)態(tài)性等。 2、 JRE(Java Runtime Environment,Java運(yùn)行時(shí)環(huán)境),它相當(dāng)于操作系統(tǒng)部分,提供了Java程序運(yùn)行時(shí)所需要的基本條件和許多Java基礎(chǔ)類,例如,IO類、
2、GUI控件類、網(wǎng)絡(luò)類等。JRE是提供給普通用戶使用的,如果你只想運(yùn)行別人開發(fā)好的Java程序,那么,你的計(jì)算機(jī)上必須且只需安裝JRE。 JDK(Java Development Kit,Java開發(fā)工具包),它包含編譯工具、解釋工具、文檔制作工具、打包工具多種與開發(fā)相關(guān)的工具,是提供給Java開發(fā)人員使用的。初學(xué)者學(xué)習(xí)和使用Java語(yǔ)言時(shí),首先必須下載和安裝JDK。JDK中已經(jīng)包含了JRE部分,初學(xué)者安裝JDK后不必再去下載和安裝JRE了。 四、編程題 public class HelloWorld { public static void main(String[] args)
3、{ System.out.println("這是第一個(gè)Java程序!"); } } 第2章 Java編程基礎(chǔ) 一、填空題 1、 class 2、 true和false 3、 單行注釋、多行注釋、文檔注釋 4、 基本數(shù)據(jù)類型、引用數(shù)據(jù)類型 5、 1、2、4、8 6、 & && | || 7、 0 8、 5 9、 34 10、 56 二、判斷題 1、 錯(cuò) 2、對(duì) 3、錯(cuò) 4、對(duì) 5、錯(cuò) 三、選擇題 1、 AD 2、AD 3、C 4、ABCD 5、C 6 、A 7、AC 8、A
4、 9、B 10、A 四、程序分析題 1、 編譯不通過(guò)。int值4和b相加時(shí),由于變量b的類型為byte,取值范圍沒(méi)有int類型大,存不下int類型的值,因此編譯不通過(guò)。 2、 編譯不通過(guò)。這是因?yàn)閥是在最里層的代碼塊中定義的一個(gè)變量,只有在那個(gè)代碼塊中才可使用,在使用y = x;語(yǔ)句時(shí)已經(jīng)超過(guò)了y變量的作用域,所以編譯無(wú)法通過(guò)。 3、 打印結(jié)果為:3。 4、 打印結(jié)果為: 9 8 7 五、簡(jiǎn)答題 1、Java語(yǔ)言的八種基本數(shù)據(jù)類型有:byte字節(jié)型,占一個(gè)字節(jié)。short短整型,占兩個(gè)字節(jié)。int整型,占4個(gè)字節(jié)。long長(zhǎng)整型,占8個(gè)字節(jié)。f
5、loat單精度浮點(diǎn)型,占4個(gè)字節(jié)。double雙精度浮點(diǎn)型,占8個(gè)字節(jié)。char字符型,占兩個(gè)字節(jié)。boolean型,表示邏輯值,有true和false兩個(gè)值,分別占一個(gè)字節(jié)。 2、如果使用“&”在表達(dá)式之間進(jìn)行連接,那么無(wú)論任何情況,“&”兩邊的表達(dá)式都會(huì)參與計(jì)算。如果使用“&&”進(jìn)行連接,當(dāng)“&&”左邊的表達(dá)式為false,則不會(huì)執(zhí)行其右邊的表達(dá)式。例如定義int x = 2,y = 0; boolean b = x < y & x / 2 > 0表達(dá)是會(huì)發(fā)生被0除異常,因?yàn)閤 / y的表達(dá)式執(zhí)行了。而boolean b
6、 = x < y & x / 2 > 0是不會(huì)出現(xiàn)這種異常的,因?yàn)閤 < y為false,表達(dá)式x / y不會(huì)執(zhí)行。 3、方法重載指的是在一個(gè)類中可以聲明多個(gè)同名的方法,而方法中參數(shù)的個(gè)數(shù)或者數(shù)據(jù)類型不一致。調(diào)用這些同名的方法時(shí),JVM會(huì)根據(jù)實(shí)際參數(shù)的不同綁定到不同的方法。 六、編程題 1、參考答案 public class Test01 { public static void main(String[] args) { int sum = 0; for (int i = 1; i < 100; i++) { if (i % 2
7、 != 0) sum += i; } System.out.println(sum); } } 2、參考答案 public class Test02 { public static void main(String args[]) { int y = function(0); System.out.println(y); } public static int function(int x) { int y; if (x > 0) { y = x + 3; } else if (x == 0) {
8、y = 0; } else { y = x * x - 1; } return y; } } 3、參考答案 public class Test03 { public static void main(String[] args) { int[] arr = { 25, 24, 12, 76, 101, 96, 28 }; for (int i = 0; i < arr.length - 1; i++) { // 定義內(nèi)層循環(huán) for (int j = 0; j < arr.length - i - 1; j++)
9、{ if (arr[j] > arr[j + 1]) { // 比較相鄰元素 // 下面的三行代碼用于交換兩個(gè)元素 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); // 打印元素和空格 } } } 第3章 面向?qū)ο螅ㄉ希? 一、填空
10、題 1、封裝、繼承、多態(tài) 2、new 3、成員變量、局部變量 4、類、類 5、this 6、finalize() 7、靜態(tài)變量 8、內(nèi)部類 9、javadoc 10、private 二、判斷題 1、對(duì) 2、對(duì) 3、錯(cuò) 4、對(duì) 5、錯(cuò) 三、選擇題 1、B 2、D 3、B 4、ABC 5、ABCD 6、ACD 7、ABCD 8、ABCD 9、D 10、D 四、程序分析題 1、程序不能編譯通過(guò),因?yàn)樵陬怉中的成員變量secret用private修飾,所以在類Test1中無(wú)法訪問(wèn)。 2、程序不能編譯通過(guò),因?yàn)樵陟o態(tài)方法method()中
11、不能訪問(wèn)非靜態(tài)成員變量x。 3、程序能夠編譯通過(guò),運(yùn)行的結(jié)果為“inner”。 五、簡(jiǎn)答題 1、構(gòu)造方法是類的一個(gè)特殊成員,它會(huì)在類實(shí)例化對(duì)象時(shí)被自動(dòng)調(diào)用。而普通方法只有在使用的時(shí) 候才會(huì)被調(diào)用。在定義構(gòu)造方法時(shí)要求方法名與類名相同、在方法名的前面沒(méi)有返回值類型的聲 明、在方法中不能使用return語(yǔ)句返回一個(gè)值 2、單例模式可以保證在整個(gè)程序運(yùn)行期間針對(duì)該類只存在一個(gè)實(shí)例對(duì)象。 六、編程題 1、參考答案 class Student { private String name; private double grade; public Student(
12、) { } public Student(String name, double grade) { this.name = name; this.grade = grade; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getGrade() { return grade; } public void setGrade(double grade) {
13、 this.grade = grade; } } public class Test01 { public static void main(String[] args) { Student stu1 = new Student(); stu1.setName("zhangsan"); stu1.setGrade(99); Student stu2 = new Student("lisi", 100); } } 2、參考答案 class Father { private String name =
14、"zhangjun"; class Child { public void introFather() { System.out.println("My Father's name is " + name); } } } public class Test02 { public static void main(String[] args) { Father.Child child = new Father().new Child(); child.introFather(); } } 第4
15、章 面向?qū)ο螅ㄏ拢? 一、填空題 1、繼承 2、方法,抽象類 3、import 4、子類、父類、基類 5、Exception 6、final 7、super 8、Object 9、try、catch 10、jar –cvf,java –jar 二、判斷題 1、錯(cuò) 2、對(duì) 3、錯(cuò) 4、對(duì) 5、對(duì) 三、選擇題 1、B 2、C 3、ABC 4、 ABCD 5、C 6、AC 7、C 8、D 9、A 10、B 四、程序分析題 1、程序編譯能通過(guò),這是因?yàn)閕nt x = 2 / 0; System.out.printl
16、n(x);這兩條語(yǔ)句使用了try塊,捕獲了程序因?yàn)槌?而產(chǎn)生的異常情況,之后程序會(huì)繼續(xù)向下執(zhí)行,輸出“進(jìn)入catch代碼塊”,“進(jìn)入finally代碼塊”。 2、程序編譯不通過(guò),這是因?yàn)樵诔绦蛑惺褂昧薴inal關(guān)鍵字修飾Animal類,使得Animal類不能被繼承。shout()方法中同樣使用了final關(guān)鍵字,使得該方法不能被重寫。 3、程序編譯能通過(guò),輸出結(jié)果為“動(dòng)物叫!”和“汪汪……”,因?yàn)樵诔绦蛑姓{(diào)用shout()方法時(shí),首先會(huì)通過(guò)super.shout()調(diào)用父類的方法說(shuō)出“動(dòng)物叫!”之后再輸出“汪汪……” 4、程序編譯不通過(guò),因?yàn)榻涌谥卸x的方法不能有方法體,所以定義的ea
17、t()方法是錯(cuò)誤的。接口中的方法必須在子類中全部實(shí)現(xiàn),由于run()方法在子類中并沒(méi)有重新實(shí)現(xiàn),所以這也是錯(cuò)誤的。 五、簡(jiǎn)答題 1、在繼承關(guān)系中,子類的方法與父類的某一方法具有相同的方法名、返回類型和參數(shù)列表,則稱子類的該方法重寫(覆蓋)父類的方法。 2、多態(tài)意味著一個(gè)對(duì)象有著多種形態(tài),可以在特定的情況下,表現(xiàn)不同的狀態(tài),從而對(duì)應(yīng)著不同的屬性和方法。簡(jiǎn)單的說(shuō),多態(tài)就是使用父類類型的變量引用子類對(duì)象,根據(jù)被引用子類對(duì)象的特性,程序會(huì)得到不同的運(yùn)行效果。 3、在Java中,使用abstract關(guān)鍵字修飾的類稱之為抽象類。抽象類是不能被實(shí)例化的,通常需要寫一個(gè)子類來(lái)繼承抽象類,同時(shí)實(shí)例化子類
18、來(lái)獲得該類的對(duì)象。抽象類通常用于表示一種抽象的概念。 接口可以說(shuō)是一種特殊的抽象類,接口中只能定義常量和抽象方法。由于接口的特殊性,在定義時(shí)需要使用interface關(guān)鍵字。 六、編程題 1、參考答案 class Student { public String name; public int age; public Student(String name,int age){ this.name=name; this.age=age; } public void show(){ System.out.println("name: &quo
19、t;+name+" age: "+age); } } class UnderGraduate extends Student{ public String degree; public UnderGraduate(String name,int age,String degree){ super(name, age); this.degree=degree; } public void show(){ System.out.println("name: "+name+" age: "+age+
20、" degree: "+degree); } } public class Test01{ public static void main(String[] args) { Student student = new Student("zhangsan", 16); student.show(); UnderGraduate underGraduate = new UnderGraduate("lisi", 20, "bechalor"); underGraduate.show(
21、); } } 2、參考答案 interface Shape { double area(double givenValue); } class Square implements Shape{ public double area(double sideLength) { return sideLength*sideLength; } } class Circle implements Shape{ public double area(double r) { return Math.PI*r*r; } } public
22、 class Test02 { public static void main(String[] args) { Shape square = new Square(); Shape circle = new Circle(); System.out.println(square.area(2)); System.out.println(circle.area(3)); } } 3、參考答案 class NoThisSongException extends Exception{ public NoThisSongException(){ sup
23、er(); } public NoThisSongException(String message){ super(message); } } class Player{ public void play(int index)throws NoThisSongException{ if(index>10){ throw new NoThisSongException("您播放的歌曲不存在"); } System.out.println("正在播放歌曲"); } } public class
24、 Test03 { public static void main(String[] args) { Player player = new Player(); try { player.play(13); } catch (NoThisSongException e) { System.out.println("異常信息為: "+e.getMessage()); } } } 第5章 多線程 一、填空題 1、 線程、通信 2、 Thread、Runnable 3、 就緒 4、 synchronized、對(duì)象、t
25、his 5、 進(jìn)程 6、 新建狀態(tài)(New)、就緒狀態(tài)(Runnable)、運(yùn)行狀態(tài)(Running)、阻塞狀態(tài)(Blocked)、死亡狀態(tài)(Terminated) 7、 10、1 8、 開啟一個(gè)新線程、run()方法 9、 wait()、notify()、notifyAll() 10、setDaemon(true)、start() 二、判斷題 1、錯(cuò) 2、對(duì) 3、對(duì) 4、錯(cuò) 5、錯(cuò) 三、選擇題 1、B 2、AC 3、ABC 4、BC 5、ABD 6、ABC 7、C 8、D 9、AB 10、ABCD 四、程序分析題 1
26、、程序不能編譯通過(guò),因?yàn)镽unHandler類沒(méi)有實(shí)現(xiàn)Runnable接口,因此RunHandler的實(shí)例對(duì)象不能作為參數(shù)傳遞給Thread的構(gòu)造方法。 2、程序不能編譯通過(guò),因?yàn)門hread的子類A重寫的run()方法的訪問(wèn)級(jí)別不能低于父類run()方法的。訪問(wèn)級(jí)別 3、程序不能編譯通過(guò),因?yàn)橥椒椒ㄖ姓{(diào)用wait()方法的對(duì)象必須為同步鎖對(duì)象。 4、t.start(); 五、簡(jiǎn)答題 1、一種是繼承java.lang包下的Thread類,覆寫Thread類的run()方法,在run()方法中實(shí)現(xiàn)運(yùn)行在線程上的代碼。 new Thread() { public void
27、run(){} }.start(); 另一種就是實(shí)現(xiàn)java.lang.Runnable接口,同樣是在run()方法中實(shí)現(xiàn)運(yùn)行在線程上的代碼。 new Thread(new Runnable(){ public void run(){} }).start() 2、調(diào)用sleep()方法,正在執(zhí)行的線程主動(dòng)讓出CPU去執(zhí)行其他線程,在sleep()方法指定的時(shí)間過(guò)后,CPU才會(huì)回到這個(gè)線程上繼續(xù)往下執(zhí)行,如果當(dāng)前線程進(jìn)入了同步鎖,sleep()方法并不會(huì)釋放鎖,即使當(dāng)前線程使用sleep()方法讓出了CPU,但其它被同步鎖擋住了的線程也無(wú)法得到執(zhí)行。wait()在一
28、個(gè)已經(jīng)進(jìn)入了同步鎖的線程內(nèi)進(jìn)行調(diào)用,讓當(dāng)前線程暫時(shí)讓出同步鎖,以便其它正在等待此鎖的線程可以得到同步鎖并運(yùn)行。當(dāng)其它線程調(diào)用了notify()方法后,調(diào)用wait()方法的線程就會(huì)解除wait狀態(tài),當(dāng)再次獲得同步鎖后,程序可以繼續(xù)向下執(zhí)行。 六、編程題 1、參考答案 public class MyThread extends Thread{ public MyThread(String name) { super(name); } public void run() { System.out.println(this.get
29、Name()); } public static void main(String[] args) { new MyThread("Thread1").start(); new MyThread("Thread2").start(); } } 2、參考答案 public class MyRunnable implements Runnable { public void run() { for (int i = 0; i < 50; i++) { System.out.println("
30、;new"); } } public static void main(String[] args) { new Thread(new MyRunnable()).start(); for (int i = 0; i < 100; i++) { System.out.println("main"); } } } 3、參考答案 public class Test01 { public static void main(String[] args) { Teacher t = new Teacher()
31、; new Thread(t, "陳老師").start(); new Thread(t, "高老師").start(); new Thread(t, "李老師").start(); } } class Teacher implements Runnable { private int notes = 80; public void run() { while (true) { dispatchNotes(); // 調(diào)用售票方法 if (notes <= 0) {
32、 break; } } } private synchronized void dispatchNotes() { if (notes > 0) { try { Thread.sleep(10); // 經(jīng)過(guò)的線程休眠10毫秒 } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + "---發(fā)出的筆記" + n
33、otes--); } } } 4、參考答案 public class Accumulator extends Thread { private int stratNum; public static int sum; public Accumulator(int startNum) { this.stratNum = startNum; } public static synchronized void add(int num) { sum += num; } public void run() { int sum = 0;
34、for (int i = 0; i < 10; i++) { sum += stratNum + i; } add(sum); } public static void main(String[] args) throws Exception { Thread[] threadList = new Thread[10]; for (int i = 0; i < 10; i++) { threadList[i] = new Accumulator(10 * i + 1); threadList[i].start(); }
35、 for (int i = 0; i < 10; i++) { threadList[i].join(); } System.out.println("Sum is : " + sum); } } 第6章 JavaAPI 一、填空題 1、 String、StringBuffer 2、 Date、Calendar、DateFormat 3、 getRuntime() 4、 () 5、 DateFormat 6、 π、e 7、 Random、java.util 8、 length() 9、 靜態(tài) 10、edcba
36、二、判斷題 1、錯(cuò) 2、錯(cuò) 3、對(duì) 4、錯(cuò) 5、對(duì) 三、選擇題 1、C 2、C 3、D 4、C 5、C 6、B 7、C 8、A 9、A 10、B 四、程序分析題 1、程序編譯能通過(guò),輸出結(jié)果如下 5 7.0 -8.0 -5 8.1 -6.1 2、程序編譯能通過(guò),輸出結(jié)果如下 str.length():15 str.charAt(0):d lastIndexOf(m):10 substring(2,4):fe indexOf(g):5 五、簡(jiǎn)答題 1、String類是不可變類,即字符串值一旦初始化后就不
37、可能改變。StringBuffer是可變字符串類,類似String的緩沖區(qū),可以修改字符串的值。 2、Date類用來(lái)表示某個(gè)特定的瞬間,能夠精確到毫秒。而在實(shí)際應(yīng)用中,往往需要把一個(gè)日期中的年、月、日等信息單獨(dú)返回進(jìn)行顯示或處理,這個(gè)類中的大部分方法都已被標(biāo)記過(guò)時(shí)。Calender類基本取代了Date類,該類中定義了一系列用于完成日期和時(shí)間字段操作的方法。 Calendar的getTime()方法,getTime()返回一個(gè)表示Calendar時(shí)間值的Date對(duì)象,同時(shí)Calendar有一個(gè)setTime(Date date)方法,setTime()方法接收一個(gè)Date對(duì)象,將Date對(duì)
38、象表示的時(shí)間值設(shè)置給Calendar對(duì)象,通過(guò)這兩個(gè)方法就可以完成Date和Calendar對(duì)象之間的轉(zhuǎn)換。 六、編程題 1、 參考答案 public class Test01 { public static void main(String[] args) { String str = "HelloWorld"; // 字符串轉(zhuǎn)成char數(shù)組 char[] ch = str.toCharArray(); StringBuffer buffer = new StringBuffer(); for (int i = str.length
39、() - 1; i >= 0; i--) { if (ch[i] >= 'A' && ch[i] <= 'Z') { buffer.append(String.valueOf(ch[i]).toLowerCase()); } else if (ch[i] >= 'a' && ch[i] <= 'z') { buffer.append(String.valueOf(ch[i]).toUpperCase()); } }
40、 System.out.println(buffer.toString()); } } 2、 參考答案 import java.text.DateFormat; import java.util.Calendar; import java.util.Date; public class Test02 { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, 100); Date date
41、 = calendar.getTime(); DateFormat format = DateFormat.getDateInstance(DateFormat.FULL); String string = format.format(date); System.out.println(string); } } 3、 參考答案 import java.util.Random; public class Test03 { public static void main(String[] args) { Random rand = new Rand
42、om(); int[] num = new int[5]; for (int i = 0; i < num.length; i++) { num[i] = 20 + rand.nextInt(31); System.out.println(num[i]); } } } 第7章 集合類 一、填空題 1、集合 2、Comparator 3、有序、可重復(fù),無(wú)序、不可重復(fù) 4、hashNext()、next() 5、Collection、M
43、ap 6、鍵、值 7、ListIterator 8、ArrayList、LinkedList,HashSet、TreeSet,HashMap、TreeMap 9、put()、get() 10、Collections、Arrays 二、判斷題 1、錯(cuò) 2、對(duì) 3、對(duì) 4、錯(cuò) 5、對(duì) 三、選擇題 1、BC 2、A 3、D 4、ABD 5、C 6、AB 7、D 8、AB 9、ABC 10、B 四、程序分析題 1、程序可以編譯通過(guò),輸出結(jié)果是“a、b、c”,因?yàn)門reeSet集合不允許存放重復(fù)元素,第2次增加的元素c會(huì)覆
44、蓋之前存入的元素c,所以輸出結(jié)果是“a、b、c”,而不是“a、b、c、c”。 2、程序不可以編譯通過(guò),這是由于向ArrayList集合中存入元素時(shí),集合并不能記住元素的類型,因此在取出元素時(shí),只能使用Object類型,而不能使用String類型。 3、程序可以編譯通過(guò),但是什么也沒(méi)有打印。使用ListIterator進(jìn)行從后向前的遍歷集合,可以使用以下兩種方法,一是使用listIterator(int index)方法將索引index的值設(shè)置為集合元素的數(shù)目,也就是ListIterator it = list.listIterator(3);,二是將程序先從前向后遍歷,然后再?gòu)暮笙蚯氨闅v。
45、 4、程序編譯不通過(guò),由于Map集合在遍歷的過(guò)程中不能使用集合對(duì)象本身刪除元素,這會(huì)導(dǎo)致并發(fā)修改異常,若想刪除集合中的元素,可以使用Iterator的remove()方法。 五、簡(jiǎn)答題 1、為了使程序能方便的存儲(chǔ)和操作數(shù)目不固定的一組數(shù)據(jù),JDK提供了一套類庫(kù),這些類都位 于java.util包中,統(tǒng)稱為集合。集合框架中包含3個(gè)接口,分別是List、Set、Map。 2、List的特點(diǎn)是元素有序、元素可重復(fù)。List接口的主要實(shí)現(xiàn)類有ArrayList和LinkedList。Set的特點(diǎn)是元素?zé)o序、元素不可重復(fù)。Set接口的主要實(shí)現(xiàn)類有HashSet和TreeSet。Map的特點(diǎn)是存
46、儲(chǔ)的元素是鍵(Key)、值(Value)映射關(guān)系,元素都是成對(duì)出現(xiàn)的。Map接口的主要實(shí)現(xiàn)類有HashMap和TreeMap。 3、Collection是一個(gè)單例集合接口。它提供了對(duì)集合對(duì)象進(jìn)行基本操作的通用方法。Collections是一個(gè)工具類。它包含各種有關(guān)集合操作的方法。 六、編程題 1、參考答案 import java.util.*; public class Test01 { public static void main(String[] args) { ArrayList list = new ArrayList(); for(int i = 0;
47、i < 10; i++) { list.add("A"+i); } Iterator it = list.iterator(); while(it.hasNext()) { Object obj = it.next(); System.out.println(obj); } } } 2、參考答案 import java.util.*; public class Test02 { public static void main(String[
48、] args) { HashSet hashSet = new HashSet(); Person p1 = new Person("Jack",25); Person p2 = new Person("Rose",23); Person p3 = new Person("Jack",27); hashSet.add(p1); hashSet.add(p2); hashSet.add(p3); for(Object obj:hashSet){ Person p=(Person)o
49、bj; System.out.println(p.name+":"+p.age); } } } class Person{ String name; int age; public Person(String name, int age) { super(); this.name = name; this.age = age; } public int hashCode() { return name.hashCode(); } public boolean equals(Object obj)
50、{ if (this == obj) return true; if (obj == null) return false; Person other = (Person) obj; return other.name.equals(this.name); } } 3、參考答案 import java.util.*; public class Test03 { public static void main(String[] args) { TreeMap map = new TreeMap(new MyComparator())
51、; map.put("1", "Lucy"); map.put("2", "Lucy"); map.put("3", "John"); map.put("4", "Smith"); map.put("5", "Amanda"); for (Object key : map.keySet()) { System.out.println(key + &quo
52、t;:" + map.get(key)); } } } class MyComparator implements Comparator { public int compare(Object obj1, Object obj2) { String ele1 = (String) obj1; String ele2 = (String) obj2; return pareTo(ele1); } } 第8章 IO(輸入輸出) 一、填空題 1、 字節(jié)流、字符流 2、 File、java.io 3、 SequenceInputStrea
53、m 4、 RandomAccessFile 5、 管道流 6、 LineNumberReader、BufferedReader、、 7、 字節(jié)流、字符流 8、 PrintStream、setOut(PrintStream out) 9、 Unicode 10、newLine() 二、判斷題 1、 錯(cuò) 2、對(duì) 3、對(duì) 4、對(duì) 5、錯(cuò) 三、選擇題 1、AB 2、C 3、C 4、ABCD 5、AB 6、ACD 7、A 8、A 9、D 10、A 四、程序填空題 1、InputStreamReader、br.readLine()、運(yùn)行結(jié)果
54、為2 2、FileInputStream(file1)、FileOutputStream、fis.available() 五、問(wèn)答題 1、Java程序通過(guò)流來(lái)完成輸入和輸出,流是輸入或輸出信息的抽象。流通過(guò)Java的輸入/輸出系統(tǒng)與外設(shè)連接進(jìn)行數(shù)據(jù)通信。流是抽象的對(duì)象,具體實(shí)現(xiàn)代碼在java.io包中。 2、字節(jié)流的兩個(gè)基類是InputStream和OutputStream,字符流的兩個(gè)基類是Reader和Writer,它們都是Object類的直接子類,字節(jié)流是處理以8位字節(jié)為基本單位的字節(jié)流類;Reader和Writer類是專門處理16位字節(jié)的字符流類。 3、管道流分為管道輸入
55、流(PipedInputStream)和管道輸出流(PipedOutputStream),通常由一個(gè)PipedInputStream實(shí)例對(duì)象和一個(gè)PipedOutputStream實(shí)例對(duì)象相互連接而實(shí)現(xiàn)管道通信,PipedOutputStream向管道寫入數(shù)據(jù),PipedInputStream從管道中讀取PipedOutputStream寫入的數(shù)據(jù),管道流主要用來(lái)完成線程之間的通信。 六、編程題 1、參考答案 import java.io.*; public class Test01 { public static void main(String[] args) throws
56、 Exception { // 字節(jié)流拷貝 FileInputStream in = new FileInputStream("E:/src.txt"); FileOutputStream out = new FileOutputStream("E:/des1.txt"); byte[] buf = new byte[1024]; int len; while ((len = in.read(buf)) != -1) { out.write(buf, 0, len); } in.close();
57、 out.close(); // 字符流拷貝 BufferedReader bf = new BufferedReader(new FileReader("E:/src.txt")); BufferedWriter bw = new BufferedWriter(new FileWriter("E:/des2.txt")); String str; while ((str = bf.readLine()) != null) { bw.write(str); bw.newLine(); } bf.
58、close(); bw.close(); } } 2、參考答案 import java.io.*; public class Test02 { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String password = ""; boolean b = false; for (int i = 0; i <
59、 5; i++) { System.out.println("請(qǐng)輸入密碼:"); password = br.readLine(); if (password.equals("")) { System.out.println("恭喜你進(jìn)入游戲"); b = true; break; } } if (!b) { System.out.println("密碼錯(cuò)誤,游戲結(jié)束"); System.exit(0); } }
60、} 第9章 GUI(圖形用戶界面) 一、填空題 1、 GUI、java.awt、javax.swing 2、 適配器 3、 Graphics 4、 事件監(jiān)聽(tīng)器 5、 JComponent 6、 窗體事件、鍵盤事件、鼠標(biāo)事件、動(dòng)作事件 7、 WindowListener、windowClosing(WindowEvent e) 8、 模態(tài)對(duì)話框、非模態(tài)對(duì)話框 9、 setLayout(null) 10、JMenuBar、JMenu、JMenuItem 二、判斷題 1、對(duì) 2、錯(cuò) 3、對(duì) 4、錯(cuò) 5、錯(cuò) 三、選擇題 1、D 2、D
61、 3、ABD 4、A 5、D 6、ABCD 7、ABD 8、ABC 9、D 10、C 四、程序分析題 1、參考答案 extends Stdno = new JTextField(); Name = new JTexxtField(); 2、參考答案 card.next(cp); cp.add(jbt); 五、簡(jiǎn)答題 1、參考答案 l 通過(guò)實(shí)現(xiàn)XxxListener接口或者繼承XxxAdapter類實(shí)現(xiàn)一個(gè)事件監(jiān)聽(tīng)器類,并對(duì)處理監(jiān)聽(tīng)動(dòng)作的方法進(jìn)行重寫 l 創(chuàng)建事件源對(duì)象和事件監(jiān)聽(tīng)器對(duì)象 l 調(diào)用事件源的addXxxLisntener()方
62、法,為事件源注冊(cè)事件監(jiān)聽(tīng)器對(duì)象 2、參考答案 AWT 是Abstract Window ToolKit (抽象窗口工具包)的縮寫,這個(gè)工具包提供了一套與本地圖形界面進(jìn)行交互的接口。AWT 中的圖形函數(shù)與操作系統(tǒng)所提供的圖形函數(shù)之間有著一一對(duì)應(yīng)的關(guān)系,當(dāng)我們利用 AWT 來(lái)的時(shí)候,我們實(shí)際上是在利用操作系統(tǒng)所提供的圖形庫(kù)。由于不同操作系統(tǒng)的圖形庫(kù)所提供的功能是不一樣的,在一個(gè)平臺(tái)上存在的功能在另外一個(gè)平臺(tái)上則可能不存在。為了實(shí)現(xiàn)Java語(yǔ)言所宣稱的"一次編譯,到處運(yùn)行"的概念,AWT 不得不通過(guò)犧牲功能來(lái)實(shí)現(xiàn)其平臺(tái)無(wú)關(guān)性,也就是說(shuō),AWT 所提供的圖形功能是各種通用型操作
63、系統(tǒng)所提供的圖形功能的交集。由于AWT 是依靠本地方法來(lái)實(shí)現(xiàn)其功能的,我們通常把AWT控件稱為重量級(jí)控件。 Swing 是在AWT的基礎(chǔ)上構(gòu)建的一套新的圖形界面系統(tǒng),它提供了AWT 所能夠提供的所有功能,并且用純粹的Java代碼對(duì)AWT 的功能進(jìn)行了大幅度的擴(kuò)充。由于在Swing 中沒(méi)有使用本地方法來(lái)實(shí)現(xiàn)圖形功能,我們通常把Swing控件稱為輕量級(jí)控件。 AWT和Swing之間的基本區(qū)別:AWT 是基于本地方法的++程序,其運(yùn)行速度比較快;Swing是基于AWT 的Java程序,其運(yùn)行速度比較慢。對(duì)于一個(gè)嵌入式應(yīng)用來(lái)說(shuō),目標(biāo)平臺(tái)的硬件資源往往非常有限,而應(yīng)用程序的運(yùn)行速度又
64、是項(xiàng)目中至關(guān)重要的因素。在這種矛盾的情況下,簡(jiǎn)單而高效的AWT 當(dāng)然成了嵌入式Java的第一選擇。而在普通的基于PC或者是工作站的標(biāo)準(zhǔn)Java應(yīng)用中,硬件資源對(duì)應(yīng)用程序所造成的限制往往不是項(xiàng)目中的關(guān)鍵因素,所以在標(biāo)準(zhǔn)版的Java中則提倡使用Swing,也就是通過(guò)犧牲速度來(lái)實(shí)現(xiàn)應(yīng)用程序的功能。 六、編程題 1、參考答案 import java.awt.*; import java.awt.event.*;import javax.swing.*; public class MyMouseHandler extends JFrame { public MyMouseHandler(
65、) { final JLabel label = new JLabel("此處顯示鼠標(biāo)右鍵點(diǎn)擊的坐標(biāo)"); label.setOpaque(true); label.setBackground(Color.PINK); this.add(label, BorderLayout.NORTH); this.setSize(300, 200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.addMouseListener(new MouseAdapter() {
66、 public void mouseClicked(MouseEvent e) { if (e.getButton() == e.BUTTON1) { int x = e.getX(); int y = e.getY(); String banner = "鼠標(biāo)當(dāng)前點(diǎn)擊位置的坐標(biāo)是" + x + "," + y; label.setText(banner); } } }); this.setVisible(true); } public static voi
67、d main(String[] args) { new MyMouseHandler(); } } 2、參考答案 import java.awt.*; import java.util.*; import javax.swing.*; import java.awt.event.*; public class Information extends JFrame { // 窗口NORTH部的JPanel面板 private JPanel panel = new JPanel(); // 愛(ài)好標(biāo)簽 private JLabel lb1 = new JLa
68、bel("愛(ài)好"); // 三個(gè)表示愛(ài)好的JCheckBox復(fù)選框 private JCheckBox cb1 = new JCheckBox("羽毛球"); private JCheckBox cb2 = new JCheckBox("乒乓球"); private JCheckBox cb3 = new JCheckBox("唱歌"); // 性別標(biāo)簽 private JLabel lb2 = new JLabel("性別"); // 表示性別的JRadioButt
69、on單選框 private JRadioButton rb1 = new JRadioButton("男"); private JRadioButton rb2 = new JRadioButton("女"); // ButtonGroup添加JRadioButton,實(shí)現(xiàn)單選功能 private ButtonGroup bg = new ButtonGroup(); // 文本域組件 private JTextArea area = new JTextArea(); // 窗口CENTER部的JScrollPane面板,其中放置area文本域 private JScrollPane pane = new JScrollPane(area); // Set集合存放選中的興趣 private Set<String> h
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中西方家庭教育的對(duì)比ppt課件
- 《運(yùn)籌學(xué)教程》第五版運(yùn)籌學(xué)6對(duì)策論矩陣對(duì)策課件
- (部編版)統(tǒng)編版四年級(jí)語(yǔ)文下冊(cè)第2課《鄉(xiāng)下人家》ppt課件
- 全等三角形1--公開課一等獎(jiǎng)ppt課件
- 《會(huì)跳舞樹葉娃娃》課件
- 9兒童詩(shī)兩首_人教版五年級(jí)的語(yǔ)文下冊(cè)課件
- 綠色植物是食物之源(我的課件)0
- 河南專版2022春八年級(jí)語(yǔ)文下冊(cè)第四單元16慶祝奧林匹克運(yùn)動(dòng)復(fù)興25周年習(xí)題課件新人教版
- 全國(guó)xx杯說(shuō)課大賽機(jī)械類一等獎(jiǎng)作品:鉗工車模的制作說(shuō)課ppt課件
- 六年級(jí)下冊(cè)數(shù)學(xué)ppt課件-總復(fù)習(xí)(1)數(shù)的認(rèn)識(shí)-整數(shù)∣北師大版
- 牛頓第二定律優(yōu)秀完整公開課ppt課件
- 調(diào)脂與卒中防治課件
- 點(diǎn)到平面的距離課件
- 聚焦新醫(yī)改形勢(shì)下的醫(yī)院發(fā)展戰(zhàn)略
- 四肢血管超聲基礎(chǔ)