面向?qū)ο蠹夹g(shù)Java 期末復習試卷(三)
《面向?qū)ο蠹夹g(shù)Java 期末復習試卷(三)》由會員分享,可在線閱讀,更多相關(guān)《面向?qū)ο蠹夹g(shù)Java 期末復習試卷(三)(17頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、真誠為您提供優(yōu)質(zhì)參考資料,若有不當之處,請指正。 期末復習試卷(三) 一、 單項選擇題 1、有一段java應用程序,其中包含一個公共類,名字為TestStudent,那么保存它的源文件名是( ) A. teststudent.java B. teststudent .class C. TestStudent.java D. TestStudent.class 正確答案:C 解析:一個java文件中可以包含多個類,但最多只能有一個類是公共類(public),該java文件的名字
2、要與公共類的一致。 2、關(guān)于下面的代碼,哪個描述是正確的? public class Test{ public static void main(String[] args){ Integer n1 = new Integer(3); Object n2 = new Integer(4); System.out.println(pareTo(n2)); } } A. 可以編譯通過,可以運行,并得到預期結(jié)果。 B. 可以編譯通過,可以運行,但不能得到預期結(jié)果。 C. 可以編譯通過,但又運行錯誤。
3、D. 有編譯錯誤。 正確答案:D 解析:Integer類是基本數(shù)據(jù)類型int的包裝類,里面封裝了一個int類型的值,提供了一些實用的方法(例如:在JavaFX中讀取文本框內(nèi)容是String類型的,如果要轉(zhuǎn)換成int類型,就要調(diào)用Integer類的parseInt()方法)并實現(xiàn)了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o), T是泛型,對于Integer類,T被替換為Integer,如下圖: 因此,Integer類中compareTo()方法的定義如下: 因此,compareTo的參數(shù)只能是Integer
4、類型的,所以代碼中的下面語句中的n2的類型需要進行強制類型轉(zhuǎn)換,由Object轉(zhuǎn)為Integer: System.out.println(pareTo(n2)); 正確寫法如下: System.out.println(pareTo((Integer) n2)); 類似的包裝類還有Long\Float\Double\Char\Boolean等,都是將基本數(shù)據(jù)類型包裝為類。 3、下面哪種類型不是引用數(shù)據(jù)類型?( ) A. 數(shù)組 B. char C. String D. Object 正確答案:B 解析:基
5、本數(shù)據(jù)類型只是存放數(shù)據(jù),不提供功能(即方法)包括4類八種: 布爾類型:boolean 字符類型:char 整數(shù)類型:byte, short, int, long 浮點類型:float,double 引用數(shù)據(jù)類型包括類、接口、抽象類、數(shù)組(本質(zhì)上是類),引用類型可以提供功能。 注意: String是一個類,所以可以使用String s = new String("bistu")的方式創(chuàng)建對象; 數(shù)組也是一個類,所以需要用new創(chuàng)建對象。 4、類Test要定義一個無參數(shù)、無返回值的方法method,并能夠通過Test.method()的方式調(diào)
6、用method方法,則method方法的定義形式為 ( )。 A. public static void method ( ) B. public void method ( ) C. public final void method ( ) D. public abstract void method ( ) 正確答案:A 解析:靜態(tài)方法(也叫類方法)可以不創(chuàng)建對象,而直接通過類名調(diào)用。 5、下列關(guān)于接口說法正確的是 ( )。 A. 抽象
7、類中的方法不全都是抽象的,因此可以創(chuàng)建對象。 B. 接口的引用既可以調(diào)用實現(xiàn)類重寫的接口的方法,也可以調(diào)用實現(xiàn)類新增的方法。 C. 接口的實現(xiàn)類可以實現(xiàn)接口的部分方法。 D. 接口的方法都是抽象的,因此不可以創(chuàng)建對象。 正確答案:D 解析:選項A的前半句是對的,后半句錯了。 選項B前半句是對的,后半句不對。示例如下: public interface GeometricObject{ public double getArea(); } public class Circle implements Geometri
8、cObject{ public double getArea(){ .…. } public double getPerimeter(){ …… } } public TestCircle{ public static void main(String[] args){ GeometricObject c = new Circle(); c.getArea(); //訪問實現(xiàn)類覆蓋接口的方法可以 c. getPerimeter() //錯誤:不可以訪問實現(xiàn)類新增的方法 } } 選項C錯誤,實現(xiàn)類必須實現(xiàn)接口的所有的抽象的方法。
9、6、將類的成員方法的訪問權(quán)限設(shè)置為默認的,則該成員方法能被( )。 A. 同一包中的類訪問 B. 其他包中的類訪問 C. 所有的類訪問 D. 所有的類的子類訪問 正確答案:A 解析:注意本題可以繼續(xù)擴展,例如把訪問權(quán)限換成public/private/protected。 7、下列哪個是Java應用程序主類中正確的main方法聲明? ( ) A. public void main(String[] args) B. static void main(String[] ar) C.
10、public static void Main(String a[]) D. public static void main(String args[]) 正確答案:D 8、有一段java應用程序,其中包含一個公共類,名字為Cat,那么保存它的源文件名是( ) A. Cat.java B. Cat.class C. Cat D. 都對 正確答案:A 與第1個選擇題類似。 9、下列哪個是JDK提供的編譯器?( ) A. java.exe B.
11、javac.exe C. javap.exe D. javaw.exe 正確答案:B 10、某個源文件如下:public class TestPerson{}class Person{}class Student extends Person{}那么保存它的源文件名是( ) A. TestPerson.java B. Person.java C. Student.java D. TestPerson.class
12、 正確答案:A 參考第1、8題。 11、以下定義一位數(shù)組的語句中,正確的是( ) A. int a[5]; B. int a[] =new [5]; C. int a[]; int a = new int[5]; D. int a[] = {1,2,3,4,5}; 正確答案:D 選項A: java中的數(shù)組是類,需要使用new關(guān)鍵字創(chuàng)建。 選項B:落類型了,正確寫法為 int a[] = new int[5]; 選項C:重復定義變量a,正確寫法: int a[];
13、 a = new int[5]; 12、String類實現(xiàn)Comparable接口,覆蓋其中的compareTo()方法。下面哪個是正確的String類中被重寫的compareTo()方法的方法頭? A. public int compareTo(String o) B. public void compareTo(String o) C. public int compareTo(Object o) D. public void compareTo(Object o) 正確答案:A 解析:Com
14、parable接口的定義如下: 接口的實現(xiàn)類必須覆蓋在接口中定義的抽象的方法,覆蓋就意味在實現(xiàn)類中的方法要與在接口中定義的抽象方法同名、同參、同返回值。 13、將類的某個成員方法的訪問權(quán)限設(shè)置為protected的,則下面說法正確的是( )。 A. 同一包中的其他類不可以訪問該方法 B. 不同包中的子類可以訪問該方法 C. 所有包中的類都可以訪問該方法 D. 所有包中的類都不可以訪問該方法。 正確答案:B 14、下列哪一個類聲明是錯誤的?( ) A. class A
15、 B. public class A C. protected class A D. public abstract class A 正確答案:C 解析:類只能被默認或者public修飾符修飾,這是與成員變量和成員方法不一樣的地方。 15、下面關(guān)于數(shù)組和集合的說法,哪一個是錯誤的?( ) A. 數(shù)組的長度一旦確定,不能修改; B. 集合的長度可變,但是效率比數(shù)組低; C. 數(shù)組和集合都屬于引用類型; D. 數(shù)組使用泛型指明所存儲的對象的類型。 正確答案:D 解析:Arr
16、ayList是集合的一種類型。集合使用泛型指明所存儲的對象的類型。 16、下面代碼有錯誤的行是:________。 1: public class Review1307{ 2: public static void main(String[] args){ 3: Number x = new Integer(3); 4: System.out.println(x.intValue()); 5: System.out.println(pareTo(new Integer(4))); 6: } 7: } A. line 2
17、 B. line 3 C. line 4 D. line 5 正確答案:D 解析: (1) 查JDK幫助文檔,Number是Integer的父類,Number沒有實現(xiàn)Comparable接口,而子類Integer實現(xiàn)了Comparable接口,即子類Integer新增了compareTo()方法。 (2) x的聲明類型是Number,實際類型是Integer,根據(jù)父類引用不能調(diào)用子類新增的方法的原則,x不可以直接調(diào)用compareTo()方法。 (3) 如果需要修改代碼中的錯誤,可以進行強制類型轉(zhuǎn)換,如下: System.out.prin
18、tln(((Integer)x).compareTo(new Integer(4))); 17、inta[] = {1,4,7,2,5,6,0},該數(shù)組第1個和最后1個元素的下標為哪一項? ( ) A. 0,7 B. 1,6 C. 0,6 D. 1,7 正確答案:C 18、假設(shè)arr是一個int類型的二維數(shù)組,下面關(guān)于arr的聲明和初始化,哪一項是錯誤的?( ) A. int[][] arr = {{1,2},{3,4,5}}; B. int[][] a
19、rr = new int[2][3]; C. int[][] arr = new int[2][]; D. int[][] arr = new int[][3]; 正確答案:D 解析:Java的二維數(shù)組是由一維數(shù)組模擬的,示例如下: 沒有第一維,就不會有第二維,所以,創(chuàng)建數(shù)組的時候,不能只指明第二維,不指明第一維。但可以僅指明第一維,不指明第二維,如選項C。 19、下面說法哪一個是錯誤的?( ) A. 構(gòu)造方法的名稱與類名一樣。 B. 構(gòu)造方法返回值可以為void。
20、 C. 一個類可以有多個構(gòu)造方法。 D. 在一個類中可以使用this調(diào)用該類的其他構(gòu)造方法。 正確答案:B 解析:構(gòu)造方法的作用是創(chuàng)建對象,因此,本質(zhì)上,構(gòu)造方法是有返回值的,其返回值就是它創(chuàng)建的對象。但是,由于即使不指明構(gòu)造方法的返回值,JDK也知道其返回值類型,因此,構(gòu)造方法的返回值類型省略掉了。但是絕對不能用void,void表示沒有返回值。 20、下面關(guān)于接口的定義哪個是正確的? A. interface A{ void print() { }; } B. abstract interface A ex
21、tends I1,I2{ abstract void print(){}; } C. abstract interface A{ print(); } D. interface A{ void print(); } 正確答案:D 解析:(1)interface前面沒有abstract修飾; (2)接口中的方法都是抽象的,因此不能有方法體,即{}。 21、下面關(guān)于多態(tài)的說法,正確的是( )。 A. 一個類中不能有同名的方法; B. 子類中不能有和父
22、類中同名的方法; C. 子類中可以有和父類中名字相同,且參數(shù)相同的方法; D. 多態(tài)性就是方法的名字和參數(shù)可以一樣,但返回值的類型必須不一樣。 正確答案:C 22、用于定義類成員的訪問控制權(quán)的一組關(guān)鍵字是( ) A. class, float, double, public B. float, boolean, int, long C. char, extends, float, double D. public, private, protected
23、 正確答案:D 23、下面關(guān)于接口的說法哪一條是錯誤的?( ) A. 接口是一種特殊的抽象類,接口的方法都是抽象方法; B. 類可以實現(xiàn)接口; C. 接口和子接口可以有自己的實例對象; D. 可以使用接口聲明引用,引用實現(xiàn)本接口或子接口的類的對象。 正確答案:C 解析:接口中的方法都是抽象的,不能創(chuàng)建實例;類似的,抽象類也不可以創(chuàng)建實例。 24、下面關(guān)于抽象類的說法,哪一條是錯誤的?( ) A. 抽象類可以不包含抽象方法; B. 一個類只要有一個抽象方法,就是抽象
24、類; C. 抽象類不能創(chuàng)建對象,創(chuàng)建對象的工作由抽象類的具體子類來實現(xiàn); D. 對于抽象類中的抽象方法來說,在抽象類中既要指定方法名和參數(shù),又要指定實現(xiàn)代碼。 正確答案:D 解析:抽象方法沒有方法體,因此不可能有實現(xiàn)代碼。 25、Java源程序經(jīng)過編譯后得到的類文件的擴展名是哪一個項?( ) A. java B. exe C. class D. html 正確答案:C 26、Worker類是Person類的子類,Worker的構(gòu)造方法中有一句super(),該語句是
25、( )。 A. 調(diào)用Person類中定義的super()方法 B. 語法錯誤 C. 調(diào)用Person類的構(gòu)造方法 D. 調(diào)用Worker類中定義的super()方法 正確答案:C 27、關(guān)于覆蓋和重載,下面說法哪一個是錯誤的?( ) A. 一個類中包含多個同名但參數(shù)不同的方法,這些方法構(gòu)成了重載。 B. 普通的成員方法可以重載,但構(gòu)造方法不可以重載。 C. 如果在子類中定義的方法與其父類的某個方法具有相同的名稱、參數(shù)和返回值,
26、則稱子類的方法覆蓋了父類的方法。 D. 當父類的方法不能滿足子類的要求時,子類可覆蓋父類的方法;當一種功能有多種實現(xiàn)時,可使用重載來提供多個同名不同參的方法。 正確答案:B 解析:構(gòu)造方法也可以重載,即一個類可以有多個構(gòu)造方法。 28、下面的代碼說明類A和類B之間是什么關(guān)系?( ) class A{ } class B extends A { } A. 關(guān)聯(lián) B. 繼承 C. 依賴 D. 實現(xiàn) 正確答案:B 29、下面代碼的錯誤出現(xiàn)在________。
27、 1: public class Review1308{ 2: public static void main(String[] args){ 3: Number x = new Integer(3); 4: System.out.println(x.intValue()); 5: System.out.println((Integer)pareTo(new Integer(4))); 6: } 7: } A. line 2 B. line 3 C. line 4 D. line 5
28、 正確答案:D 30、下列關(guān)于繼承的概念,哪項敘述是正確的?( ) A. 在java中,允許一個類繼承多個父類; B. 在java中,一個類只能實現(xiàn)一個接口; C. 在java中,一個類不能同時繼承一個類和實現(xiàn)一個接口; D. java的單一繼承使代碼更可靠。 正確答案:D 解析:Java采用單繼承,即只能有一個父類,但可以實現(xiàn)多個接口。 二、 程序題 1、GeometricObject是幾何圖形抽象類,Circle類繼承了GeometricObject類,同時實現(xiàn)了Comparable
29、<Circle>接口,三者的UML類圖如下: 提示:Comparable<T>接口在java.lang包中已經(jīng)定義,不需要自己寫。 解題要求:編寫測試類,要求如下: (1)創(chuàng)建Circle類的對象c1和c2,設(shè)定c1的半徑為5,c2的半徑為6。 (2)輸出c1和c2的半徑;c1的周長和面積;調(diào)用c1的compareTo(Circle o) 方法與c2比較,輸出比較結(jié)果。 (3)將c1的半徑改為8,按照(2)中的要求輸出信息。 (4)將c1的半徑改為6,按照(2)中的要求輸出信息。樣例如下 package qiZhongKaoShi2;
30、public class TestCircleComparable { public static void main(String[] args){ Circle c1 = new Circle(5); Circle c2 = new Circle(6); System.out.println("c1的半徑是" + c1.getR()); System.out.println("c2的半徑是" + c2.getR()); System.out.println("c1的周長是" + c1.getPerimeter()); System.out.print
31、ln("c1的面積是" + c1.getArea()); if (pareTo(c2)==1) System.out.println("c1比c2大"); else if (pareTo(c2)==-1) System.out.println("c1比c2小"); else System.out.println("c1與c2相等"); System.out.println(); c1 = new Circle(8); System.out.println("c1的半徑是" + c1.getR()); Sy
32、stem.out.println("c2的半徑是" + c2.getR()); System.out.println("c1的周長是" + c1.getPerimeter()); System.out.println("c1的面積是" + c1.getArea()); if (pareTo(c2)==1) System.out.println("c1比c2大"); else if (pareTo(c2)==-1) System.out.println("c1比c2小"); else System.out.println("c1與c
33、2相等"); System.out.println(); c1 = new Circle(6); System.out.println("c1的半徑是" + c1.getR()); System.out.println("c2的半徑是" + c2.getR()); System.out.println("c1的周長是" + c1.getPerimeter()); System.out.println("c1的面積是" + c1.getArea()); if (pareTo(c2)==1) System.out.println("c1比c
34、2大");
else if (pareTo(c2)==-1)
System.out.println("c1比c2小");
else
System.out.println("c1與c2相等");
}
}
abstract class GeometricObject{
public abstract double getArea();
public abstract double getPerimeter();
}
class Circle extends GeometricObject implements Comparable 35、le>{
private double r;
public Circle(){}
public Circle(double r){
this.r = r;
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
@Override
public double getArea() {
return Math.PI * r * r;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * r;
}
@Override
public int compareTo(Circle o) {
if (r > o.getR())
return 1;
else if ( r < o.getR() )
return -1;
else
return 0;
}
}
17 / 17
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。