JAVA各章習(xí)題及答案_第1頁
JAVA各章習(xí)題及答案_第2頁
JAVA各章習(xí)題及答案_第3頁
JAVA各章習(xí)題及答案_第4頁
JAVA各章習(xí)題及答案_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第1章 Java入門一、選擇題1下列選項中,不屬于Java語言特點的一項是( C )。(A)分布式(B)安全性(C)編譯執(zhí)行(D)面向?qū)ο蟆窘馕觥縅ava程序采用解釋執(zhí)行的方法。在系統(tǒng)編譯運行Java程序時,Java編譯器將Java程序轉(zhuǎn)化為字節(jié)碼,在運行時,解釋器將編譯得到的字節(jié)碼進行解釋執(zhí)行。2在Java語言中,(C )是最基本的元素?(A)方法(B)包(C)對象(D)接口【解析】構(gòu)成Java程序的基本元素類(抽象的對象)。3編譯一個定義了3個類和10個方法的Java源文件后,會產(chǎn)生( D )個字節(jié)碼文件?擴展名是( D)?(A)13個字節(jié)碼文件,擴展名為.class(B)1個字節(jié)碼文件,

2、擴展名為.class(C)3個字節(jié)碼文件,擴展名為.java(D)3個字節(jié)碼文件,擴展名為.class【解析】源文件中的每一個類編譯后都會生成一個字節(jié)碼文件,字節(jié)碼文件的擴展名是.class。4在創(chuàng)建Applet應(yīng)用程序時,需要用戶考慮問題是(B )。(A)窗口如何創(chuàng)建(B)繪制的圖形在窗口中的位置(C)程序的框架(D)事件處理【解析】創(chuàng)建Applet程序時必須繼承系統(tǒng)類Applet,而Applet類中已經(jīng)包含了如何創(chuàng)建窗口以及事件處理等內(nèi)容,這類程序的框架也都是固定的,而繪制圖形在窗口中的位置則需要由用戶確定。5Java語言屬于( B )種語言?(A)面向機器的語言 (B)面向?qū)ο蟮恼Z言(C

3、)面向過程的語言 (D)面向操作系統(tǒng)的語言【解析】Java語言是一種純面向?qū)ο蟮恼Z言。6下列關(guān)于Application和Applet程序的說法中不正確的一項是( B )。(A)Application使用解釋器java.exe (B)Application不使用獨立的解釋器 (C)Applet在瀏覽器中運行(D)Applet必須繼承Java的Applet類【解析】Application程序包含main()方法,它是一種獨立執(zhí)行的程序,因此必須使用獨立的解釋器解釋執(zhí)行。7下列選項中,不屬于Java核心包的一項是( A )。(A)javax.swing(B)java.io(C)java.utile(

4、D)java.lang【解析】凡是以java開頭的包都是Java核心包,以javax開頭的包則屬于Java擴展包。8下列描述中,不正確的是( A )。(A)不支持多線程(B)一個Java源文件不允許有多個公共類(C)Java通過接口支持多重繼承(D)Java程序分為Application和Applet兩類【解析】Java是支持多線程的語言。9閱讀下列代碼,選出該代碼段正確的文件名( C )。class Avoid method1()System.out.println(Method1 in class A);public class Bvoid method2()System.out.prin

5、tln(Method2 in class B);public static void main(String args)System.out.println(main() in class B);(A)A.java(B)A.class(C)B.java(D)B.class【解析】Java源文件名必須和公共類的名字完全一樣,源文件的擴展名為.java。10編譯下面源程序會得到哪些文件( D )?class A1class A2public class Bpublic static void main(String args)(A)只有B.class文件(B)只有A1.class和A2.class

6、文件(C)編譯不成功(D)A1.class、A2.class和B.class文件【解析】由于該程序包含3個類,每個類編譯后都會生成1個字節(jié)碼文件,因此編譯后會生成以這3個類名命名的字節(jié)碼文件。11編譯Java程序時,用于指定生成class文件位置的選項是( A )。A-d B-g C-verbose D-nowarn12下列標(biāo)識符(名字)命名原則中,正確的是( C )。A類名的首字母小寫 B接口名的首字母小寫C常量全部大寫 D變量名和方法名的首字母大寫13下面哪種注釋方法能夠支持javadoc命令?( C )A/ B/*.*/ C/*.*/ D/*.*/14下面哪些選項是正確的main方法說明

7、?( D )Avoid main() Bprivate static void main(String args)Cpublic main(String args) Dpublic static void main(String args)二、填空題1Java程序的編譯和執(zhí)行模式包括2點,是 半編譯 和 半解釋 。2Java語言支持 TCP/IP 協(xié)議,從而使得Java程序在分布式環(huán)境中能夠很方便地訪問處于不同地點的 對象 。3開發(fā)Java程序的一般步驟是:源程序編輯、 生成字節(jié)碼 和 解釋執(zhí)行 。4每個Java Application程序可以包括許多方法,但是必須有且只能有一個 main()

8、 方法,統(tǒng)一格式為 public static void main(String args) ,它是程序執(zhí)行的入口。5JVM把字節(jié)碼程序與各種不同的 操作系統(tǒng) 和 硬件 分開,使得Java程序獨立于平臺。6在Java程序中,能在WWW瀏覽器上運行的是 Applet 程序。7Java源程序文件和字節(jié)碼文件的擴展名分別為 .java 和 .class 。8如果在Java程序中需要使用java.utile包中的所有類,則應(yīng)該在程序開始處加上 import java.utitle.* 語句。三、判斷題1Java語言具有較好的安全性和可移植性及與平臺無關(guān)等特性。( )2Java語言的源程序不是編譯型的,

9、而是編譯解釋型的。( )3Java Application程序中,必有一個主方法main(),該方法有沒有參數(shù)都可以。( )4java.util.Scanner(System.in)可以接收用戶從鍵盤輸入的簡單數(shù)據(jù)。( )5Java程序中不區(qū)分大小寫字母。( )6機器不能直接識別字節(jié)碼文件,它要經(jīng)過JVM中的解釋器邊解釋邊執(zhí)行。( )7System類中的println()方法分行顯示信息,而print()方法不分行顯示信息。( )8當(dāng)前路徑的標(biāo)識是“.”。 ( )9java命令不區(qū)分大小寫,而javac命令區(qū)分大小寫。( )10printf()和 format()方法使用指定格式字符串和參數(shù),

10、將格式化字符串寫入到PrintStream類型的輸出流(System.out對象)中。( )11在運行字節(jié)碼文件時,使用java命令,一定要給出字節(jié)碼文件的擴展名.class。( )第2章 標(biāo)識符與簡單數(shù)據(jù)類型一、選擇題1下列( D )是合法的標(biāo)識符?(A)12class(B)void(C)-5(D)_blank2下列( B )不是Java中的保留字?(A)if(B)sizeof(C)private(D)null3下列( C )不是合法的標(biāo)識符?(A)$million(B)$_million(C)2$_million(D)$2_million4下列選項中,( B )不屬于Java語言的基本數(shù)據(jù)

11、類型?(A)整數(shù)型(B)數(shù)組(C)浮點型(D)字符型5下列關(guān)于基本數(shù)據(jù)類型的說法中,不正確的一項是( D )。(A)boolean類型變量的值只能取真或假(B)float是帶符號的32位浮點數(shù)(C)double是帶符號的64位浮點數(shù)(D)char是8位Unicode字符【解析】Java中的字符采用的是16位的Unicode字符。6下列關(guān)于基本數(shù)據(jù)類型的取值范圍的描述中,正確的一個是( B )。(A)byte類型的取值范圍是-128128 (B)boolean類型的取值范圍是真或假(C)char類型的取值范圍是065536 (D)short類型的取值范圍是-3276732767【解析】根據(jù)每種類

12、型占幾個字節(jié)即可推算出其取值范圍,如byte類型占1個字節(jié),即共包含28個數(shù)值,其取值范圍范圍應(yīng)為-128127,其他類型也是如此。7下列關(guān)于Java語言簡單數(shù)據(jù)類型的說法中,正確的一項是( A )。(A)以0開頭的整數(shù)代表8進制整型常量(B)以0x或0X開頭的整數(shù)代表8進制整型常量(C)boolean類型的數(shù)據(jù)作為類成員變量的時候,相同默認(rèn)的初始值為true (D)double型數(shù)據(jù)占計算機存儲的32位8下列Java語句中,不正確的一項是( C )。(A)$e, a, b = 10;(B)char c, d = a;(C)float e = 0.0d;(D)double c = 0.0f;【

13、解析】不能將double類型的常量賦值給float類型的變量。9在編寫Java程序時,如果不為類的成員變量定義初始值,Java會給出它們的默認(rèn)值,下列說法中不正確的一個是( D )。(A)byte的默認(rèn)值是0(B)boolean的默認(rèn)值是false(C)char類型的默認(rèn)值是0(D)long類型的默認(rèn)值是0.0L10下列語句中不正確的一個是( B )。(A)float f = 1.1f;(B)byte b = 128;(C)double d = 1.1/0.0;(D)char c = (char)1.1f;【解析】bytel類型變量的取值范圍是-128127。11下列表達式1+2+ aa+3的

14、值是( B )。(A)12aa3(B)3aa3 (C)12aa(D)aa3【解析】整數(shù)和整數(shù)相加得到兩個整數(shù)的和,而整數(shù)和字符串相加得到的是字符串。12已知y=2, z=3, n=4,則經(jīng)過n=n+ -y*z/n運算后n的值為( A )。(A)3(B)-1(C)-1 (D)-3【解析】根據(jù)運算符的優(yōu)先級,該表達式相當(dāng)于n=n+ (-y)*z)/n。13已知a=2, b=3,則表達式a%b*4%b的值為( A )。(A)2(B)1(C)-1(D)-2【解析】根據(jù)運算符的優(yōu)先級,該表達式相當(dāng)于(a%b)*4)%b。14已知x=2, y=3, z=4,則經(jīng)過z- = -y x-運算后,z的值為( D

15、 )。(A)1(B)2(C)3(D)4【解析】在表達式運算過程中,-y的值變?yōu)?,x的值還是2,等號右側(cè)運算后的值為0,因此z的值沒有變化。15表達式(12=0) & (1/0 1)的值為( B )。(A)trueB)false(C)0(D)運行時拋出異?!窘馕觥坑捎?12=0)的值為false,因此整個表達式發(fā)生短路運算,即(1/0 1)就沒有參與運算,整個表達式的值為false。16設(shè)有類型定義short i=32; long j=64; 下面賦值語句中不正確的一個是( B )(A)j=i; (B)i=j; (C)i=(short)j; (D)j=(long)i;【解析】long類型的數(shù)據(jù)

16、不能自動轉(zhuǎn)變?yōu)閟hort類型,因此不能將long類型的變量直接賦值給short類型。17現(xiàn)有1個char類型的變量c1=66和1個整型變量i=2,當(dāng)執(zhí)行c1=c1+(char)i;語句后,c1的值為( D )。(A)d(B)D(C)68(D)語句在編譯時出錯【解析】兩個字符型的數(shù)據(jù)相加,得到的是一個整數(shù),而如果把整數(shù)再賦值給一個字符型變量則會在編譯時出錯。18下列說法中,正確的一項是( D )。(A)字符串a(chǎn)bcd的長度為6(B)False是Java的保留字(C)123.45L代表單精度浮點型(D)False是合法的Java標(biāo)識符【解析】Java語言對字符的大小寫是敏感的,F(xiàn)alse不是fal

17、se,因此False是合法的Java標(biāo)識符。19以下的變量定義語句中,合法的是( D )(A)float _*5 = 123.456F;(B)byte $_b1 = 12345;(C)int _long_ = L;(D)double d = Double.MAX_VALUE;【解析】(A)中_*5不是合法的標(biāo)識符,(B)中12345超出byte范圍,(C)中不能將long類型的常量賦值給int型的變量。20下列關(guān)于運算符優(yōu)先級的說法中,不正確的一個是( C )(A)運算符按照優(yōu)先級順序表進行運算(B)同一優(yōu)先級的運算符在表達式中都是按照從左到右的順序進行運算的(C)同一優(yōu)先級的運算符在表達式中

18、都是按照從右到左的順序進行運算的(D)括號可以改變運算的優(yōu)先次序【解析】同一優(yōu)先級的運算符在表達式中都是按照從左到右的順序進行運算的。二、填空題1變量是Java程序的基本存儲單元之一,變量的主要類型包括2大類:字符型 和 數(shù)值型 。2Java語言的整數(shù)類型變量和常量一樣,各自都包括4種類型的數(shù)據(jù),它們分別是byte、 int 、 short 和long。3 boolean 類型數(shù)據(jù)不可以做類型轉(zhuǎn)換。4在Java語言的基本數(shù)據(jù)類型中,占存儲空間最少的類型是 boolean ,該類型占用的存儲空間為 1 位。5Java語言中的 保留字 具有特殊意義和作用,不能作為普通標(biāo)識符使用。6在Java語言中

19、,浮點類型數(shù)據(jù)屬于實型數(shù)據(jù),可以分為 單精度 和 雙精度 兩種。7char類型的數(shù)據(jù)可以表示的字符數(shù)共為 65536 。8定義初始值為10的8次方的常整型變量iLong的語句是 final iLong = L 。9Java語言中的數(shù)據(jù)類型轉(zhuǎn)換包括 自動轉(zhuǎn)換 和 強制轉(zhuǎn)換 兩種。10Java中的字符采用的是16位的 Unicode 編碼。11數(shù)據(jù)類型中存儲空間均為64位的兩種數(shù)據(jù)類型是 long 和 double 。12表達式9*4/ -5%5的值為 -2 。(十進制表示) 13表達式5&2的值為 0 。(十進制表示)14表達式423的值為 11010 。(二進制表示)16表達式7|3的值為 7

20、 。(十進制表示) 17表達式102的值為 8 。(十進制表示)18Java語言中的邏輯與(&)和邏輯或(|)運算采用 短路 方式進行運算。19若a、b為int型變量,并且已分別賦值為5和10,則表達式(a+)+(+b)+a*b的值為 82 。20假設(shè)i=10, j=20, k=30,則表達式 !(ij+k) | !(i+10=j) 的值為 false 。三、判斷題1Java語言使用的是Unicode字符集,每個字符在內(nèi)存中占8位。( )2Java語言中不同數(shù)據(jù)類型的長度是固定的,不隨機器硬件不同而改變。( )3所有的變量在使用前都必須進行初始化。( )4已知byte i = (byte)12

21、7; i = i +1;這兩個語句能被成功編譯。( )5String str=abcdefghi;char chr=str.charAt(9); ( )6char chrArray= a, b, c, d, e, f, g;char chr=chrArray6; ( )7int i,j;boolean booleanValue=(i=j); ( )8int intArray=0,2,4,6,8; int length=int Array.length();( )9String str=abcedf; int length=str.length; ( )10short shortValue=22

22、0;byte byteValue=shortValue; ( )11int intArray60; ( )12char str=abcdefgh; ( )13說明或聲明數(shù)組時不分配內(nèi)存大小,創(chuàng)建數(shù)組時分配內(nèi)存大小。( )14強制類型轉(zhuǎn)換運算符的功能是將一個表達式的類型轉(zhuǎn)換為所指定的類型。( )第3章 運算符、表達式與語句一、選擇題1下列( D )不屬于Java語言流程控制結(jié)構(gòu)?(A)分支語句(B)跳轉(zhuǎn)語句(C)循環(huán)語句(D)賦值語句【解析】Java語言流程控制結(jié)構(gòu)只包括分支、循環(huán)和跳轉(zhuǎn)三種語句。2假設(shè)a是int類型的變量,并初始化為1,則下列( D )是合法的條件語句?(A)if(a)(B)i

23、f(a=3)(C)if(a=2)(D)if(true)【解析】條件語句中的“條件表達式”只能是boolean類型,不能是其他類型。3下列說法中,不正確的一個是( C )。(A)switch語句的功能可以由ifelse if語句來實現(xiàn)(B)若用于比較的數(shù)據(jù)類型為double型,則不可以用switch語句來實現(xiàn)(C)if else if語句的執(zhí)行效率總是比switch語句高(D)case子句中可以有多個語句,并且不需要大括號括起來【解析】語句執(zhí)行效率高低要根據(jù)具體語句來確定,不能簡單地說ifelse if語句的執(zhí)行效率總是比switch語句高。4設(shè)a、b為long型變量,x、y為float型變量,

24、ch為char類型變量且它們均已被賦值,則下列語句中正確的是( B )。(A)switch(x+y) (B)switch(ch+1) (C)switch ch (D)switch(a+b); 【解析】switch后面的表達式必須放在括號()中,且表達式的類型只能是byte、short、int和char類型,不能是其他類型。5下列循環(huán)體執(zhí)行的次數(shù)是( C )。int y=2, x=4;while(-x != x/y) (A)1(B)2(C)3(D)4【解析】第1次執(zhí)行while時,-x的值為3,3/2=1,滿足等號兩端值不等的條件,執(zhí)行一次循環(huán)體;第2次執(zhí)行while時,-x的值為2,2/2=1

25、,條件滿足,又執(zhí)行一次循環(huán)體;第3次執(zhí)行while時,-x的值為1,1/2=0,條件滿足,再次執(zhí)行一次循環(huán)體;第4次執(zhí)行while時,-x的值為0,0/2=0,條件不滿足滿足,結(jié)束循環(huán)。因此在這個循環(huán)語句執(zhí)行的過程中,循環(huán)體共執(zhí)行了3次。6下列循環(huán)體執(zhí)行的次數(shù)是( B )。int x=10, y=30;doy -= x; x+;while(x+y-);(A)1 (B)2 (C)3 (D)4【解析】執(zhí)行1次循環(huán)體后,y的值為20,x值為11,然后執(zhí)行while,此時x+的值為11,y的值為20,因此x+y條件滿足,判斷完后,x的值變?yōu)?2,y的值變?yōu)?9;接著執(zhí)行第2次循環(huán)體,執(zhí)行完第2次循環(huán)體

26、后,y的值為9,x值為13,然后執(zhí)行while,此時x+的值為13,y的值為9,因此x+y條件不滿足,結(jié)束循環(huán)。因此在這個循環(huán)語句執(zhí)行的過程中,循環(huán)體共執(zhí)行了2次。7已知如下代碼:switch(m)case0:System.out.println(Condition 0);case1:System.out.println(Condition 1);case2:System.out.println(Condition 2);case3:System.out.println(Condition3);break;default:System.out.println(OtherCondition);當(dāng)

27、m的值為( D )時,輸出“Condition 3”(A)2(B)0、1(C)0、1、2(D)0、1、2、3【解析】當(dāng)m的值為0、1、2、3時,都能輸出“Condition 3”,因為case 0、case 1、case 2后面的語句都沒有break,因此可以繼續(xù)向后執(zhí)行。二、填空題1跳轉(zhuǎn)語句包括break、continue、return和throw2switch語句先計算switch后面的 表達式 的值,再和各 case 語句后的值做比較。3if語句合法的條件值是 boolean 類型。4continue語句必須使用于 循環(huán) 語句中。5break語句有兩種用途:一種從switch 語句的分支

28、中跳出,一種是從循環(huán)語句內(nèi)部跳出。6do while循環(huán)首先執(zhí)行一遍 循環(huán)體 ,而while循環(huán)首先判斷 表達式的值 。7與C+語言不同,Java語言不通過 goto 語句實現(xiàn)跳轉(zhuǎn)。8每一個else子句都必須和它前面的一個距離它最近的 if 子句相對應(yīng)。9在switch語句中,完成一個case語句塊后,若沒有通過break語句跳出switch語句,則會繼續(xù)執(zhí)行后面的 case 語句塊。10在for循環(huán)語句中可以聲明變量,其作用域是 for循環(huán)體 。第4章 類與對象一、選擇題1下列哪種類成員修飾符修飾的變量只能在本類中被訪問?( D )(A)protected(B)public(C)defaul

29、t(D)private2在Java語言中,哪一個包中的類是自動導(dǎo)入的?( A )A)java.langB)java.awtC)java.io D)java.applet【解析】只有java.lang包中的類能夠被自動導(dǎo)入。3給出下面的程序代碼:public class X4_1_3 private float a; public static void m ( ) 如何使成員變量a被方法m( )訪問( C )(A)將private float a改為protected float a(B)將private float a改為public float a(C)將private float a改為

30、static float a(D)將private float a改為float a【解析】static類型的方法只能訪問static類型的數(shù)據(jù)成員。4有一個類B,下面為其構(gòu)造方法的聲明,正確的是( B )。(A)void B(int x)(B)B(int x) (C)b(int x)(D)void b(int x) 5下面關(guān)于類的說法,不正確的是( C )。(A)類是同種對象的集合和抽象(B)類屬于Java語言中的復(fù)合數(shù)據(jù)類型(C)類就是對象(D)對象是Java語言中的基本結(jié)構(gòu)單位【解析】類是對象的抽象,對象是類的實例 6下面關(guān)于方法的說法,不正確的是( C )。(A)Java中的構(gòu)造方法名

31、必須和類名相同(B)方法體是對方法的實現(xiàn),包括變量聲明和合法語句(C)如果一個類定義了構(gòu)造方法,也可以用該類的默認(rèn)構(gòu)造方法(D)類的私有方法不能被其他類直接訪問【解析】類中一旦用戶定義了構(gòu)造方法,該類默認(rèn)的構(gòu)造方法就不存在了,除非用戶再自定義該類的默認(rèn)構(gòu)造方法。7關(guān)于內(nèi)部類,下列說法不正確的是( A )。(A)內(nèi)部類不能有自己的成員方法和成員變量(B)內(nèi)部類可用private或protected修飾符修飾(C)內(nèi)部類可以作為其他類的成員,而且可訪問它所在的類的成員(D)除static內(nèi)部類外,不能在類內(nèi)聲明static成員8定義外部類時不能用到的關(guān)鍵字是( C )。(A)final(B)pub

32、lic(C)protected(D)abstract【解析】定義外部類不能使用protected修飾符。9為AB類定義一個無返回值的方法f,使得使用類名就可以訪問該方法,該方法頭的形式為( D )(A)abstract void f()(B)public void f()(C)final void f()(D)static void f()【解析】只有static類型的方法才可以直接使用類名來引用。10定義一個公有double型常量PI,哪一條語句最好?( B )(A)public final double PI;(B)public final static double PI=3.14;(C

33、)public final static double PI;(D)public static double PI=3.14;【解析】用public final static來定義常量,既可以節(jié)省存儲空間,又可以保證數(shù)值不會被改變。二、填空題1 對象 是對事物的抽象,而 類 是對對象的抽象和歸納。2從用戶的角度看,Java源程序中的類分為兩種: 系統(tǒng)定義的類 和 用戶自己定義的類 。3一個類主要包含兩個要素: 數(shù)據(jù)成員 和 成員方法 。4創(chuàng)建包時需要使用關(guān)鍵字 package 。5類中的 構(gòu)造 方法是一個特殊的方法,該方法的方法名和類名相同。6如果用戶在一個自定義類中未定義該類的構(gòu)造方法,系統(tǒng)

34、將為這個類定義一個默認(rèn)構(gòu)造方法。這個方法沒有 形式參數(shù) ,也沒有任何 具體語句 ,不能完成任何操作。7靜態(tài)數(shù)據(jù)成員被保存在類的內(nèi)存區(qū)的 公共存儲 單元中,而不是保存在某個對象的內(nèi)存區(qū)中。因此,一個類的任何對象訪問它時,存取到的都是 相同 (相同/不同)的數(shù)值。8靜態(tài)數(shù)據(jù)成員既可以通過 對象名 來訪問,也可以通過 類名 直接訪問它。9定義常量時要用關(guān)鍵字 final ,同時需要說明常量的 數(shù)據(jù)類型 并指出常量的 具體值 。10方法體內(nèi)定義變量時,變量前不能加 修飾符 ;局部變量在使用前必須 明確賦值 ,否則編譯時會出錯;而類變量在使用前可以不用賦值,它們都有一個 默認(rèn) 的值。11static方法

35、中只能引用 static 類型的數(shù)據(jù)成員和 static 類型的成員方法;而非static類型的方法中既可以引用 static 類型的數(shù)據(jù)成員和成員方法,也可以引用非static 類型的數(shù)據(jù)成員和成員方法。12引用static類型的方法時,可以使用 類名 做前綴,也可以使用 對象名 做前綴。13當(dāng)程序中需要引用java.awt.event包中的類時,導(dǎo)入該包中類的語句為 import java.awt.event.*。14定義類時需要 class 關(guān)鍵字,繼承類時需要 extends 關(guān)鍵字,實現(xiàn)接口時需要關(guān)鍵字 implements 。三、判斷題1類是一種類型,也是對象的模板。( )2類中說

36、明的方法可以定義在類體外。( )3實例方法中不能引用類變量。( )4創(chuàng)建對象時系統(tǒng)將調(diào)用適當(dāng)?shù)臉?gòu)造方法給對象初始化。( )5使用運算符new創(chuàng)建對象時,賦給對象的值實際上是一個引用值。( )6對象賦值實際上是同一個對象具有兩個不同的名字,它們都有同一個引用值。( )7對象可作方法參數(shù),對象數(shù)組不能作方法參數(shù)。( )8class是定義類的惟一關(guān)鍵字。( )9Java語言會自動回收內(nèi)存中的垃圾。( )第5章 子類與繼承一、選擇題1已知有下面類的說明:public class X5_1_1 extends xprivate float f =10.6f;int i=16;static int si=

37、10;public static void main(String args) X5_1_1 x=new X5_1_1();在main()方法中,下面哪條語句的用法是正確的?( A )Ax.f Bthis.si CX5_1_1.i DX5_1_1.f【解析】由于x是在main方法內(nèi)部定義的對象,因此它可以引用類的非static類型的屬性,因此選A,而this和super不能在main方法中使用,使用類名只能引用本類的靜態(tài)屬性,因此B、C、D不對。2下列程序的運行結(jié)果是( C )。public class X5_1_2 extends xint ab()static int aa=10;aa+;

38、System.out.println(aa);public static void main(String args) X5_1_2 x=new X5_1_2();x.ab();A10B11C編譯錯誤D運行成功,但不輸出【解析】方法體內(nèi)的局部變量不能使用static修飾符。3下面關(guān)于接口的說法中不正確的是(C )。A接口中所有的方法都是抽象的B接口中所有的方法都是public訪問權(quán)限C子接口繼承父接口所用的關(guān)鍵字是implementsD接口是Java中的特殊類,包含常量和抽象方法【解析】子接口繼承父接口所用的關(guān)鍵字也是extends,只有類實現(xiàn)接口時才使用implements。4區(qū)分類中重載方

39、法的依據(jù)是( A )。A形參列表的類型和順序B不同的形參名稱C返回值的類型不同D訪問權(quán)限不同【解析】形參表的類型和順序不同時區(qū)分重載方法的唯一標(biāo)志。5子類對象能否直接向其父類賦值?父類對象能否向其子類賦值?( B )A能,能B能,不能C不能,能D不能,不能【解析】子類對象可以直接賦值給父類對象,而父類對象不能直接賦值給子類對象。6Java語言類間的繼承關(guān)系是( A )。A單繼承B多重繼承C不能繼承D不一定【解析】Java語言類間的繼承關(guān)系是單繼承,但一個類可以實現(xiàn)多個接口。7Java語言接口間的繼承關(guān)系是( B )。A單繼承 B多重繼承 C不能繼承 D不一定【7.解析】Java語言接口間的繼承

40、關(guān)系允許多重繼承。8一個類實現(xiàn)接口的情況是( A )。A一次可以實現(xiàn)多個接口B一次只能實現(xiàn)一個接口C不能實現(xiàn)接口D不一定【解析】Java語言允許一個類一次實現(xiàn)多個接口。9定義外部類的類頭時,不可用的關(guān)鍵字是( C )。Apublic BfinalCprotected Dabstract【解析】定義外部類時不能使用protected關(guān)鍵字。10如果局部變量和成員變量同名,如何在局部變量作用域內(nèi)引用成員變量?( B )A不能引用,必須改名,使它們的名稱不相同B在成員變量前加this,使用this訪問該成員變量C在成員變量前加super,使用super訪問該成員變量D不影響,系統(tǒng)可以自己區(qū)分【解析】

41、this可以用來引用本類對象。11下面說法不正確的是( B )。A抽象類既可以做父類,也可以做子類Babstract和final能同時修飾一個類C抽象類中可以沒有抽象方法,有抽象方法的類一定是抽象類或接口D聲明為final類型的方法不能在其子類中重新定義【解析】abstract和final不能同時修飾一個類,因為abstract類需要子類,而final類不能有子類。二、填空題1消息就是向?qū)ο蟀l(fā)出 服務(wù)請求 ,是對 數(shù)據(jù)成員 和 成員方法 的引用。2在面向?qū)ο笙到y(tǒng)中,消息分為兩類 公有消息 和 私有消息 。3在面向?qū)ο蟪绦蛟O(shè)計中,采用 繼承 機制可以有效地組織程序結(jié)構(gòu)。充分利用已有的類來創(chuàng)建更復(fù)

42、雜的類,大大提高程序開發(fā)的效率,提高代碼的復(fù)用率,降低維護的工作量。4 數(shù)據(jù)成員的隱藏 是指在子類中重新定義一個與父類中已定義的數(shù)據(jù)成員名完全相同的數(shù)據(jù)成員。5子類可以重新定義與父類同名的成員方法,實現(xiàn)對父類方法的 覆蓋 。6子類在重新定義父類已有的方法時,應(yīng)保持與父類完全相同的 方法名 、 返回值類型 和 參數(shù)列表 ,否則就不是方法的覆蓋,而是子類定義自己特有的方法,與父類的方法無關(guān)。7this代表了 當(dāng)前對象 的一個引用,super表示的是當(dāng)前對象的 直接父類對象 的引用。8抽象類不能 創(chuàng)建 對象,該工作由抽象類派生的非抽象子類來實現(xiàn)。9如果父類中已有同名的abstract方法,則子類中就

43、 不能 (能/不能)再有同名的抽象方法。10abstract類中不能有 private 訪問權(quán)限的數(shù)據(jù)成員或成員方法。11 interface 是聲明接口的關(guān)鍵字,可以把它看成一個特殊類。接口中的數(shù)據(jù)成員默認(rèn)的修飾符是 public static final ,接口中的成員方法默認(rèn)的修飾符是 public abstract 。12如果實現(xiàn)某接口的類不是abstract的抽象類,則在類的定義部分必須 實現(xiàn) 該接口的所有抽象方法;如果實現(xiàn)某接口的類是abstract的抽象類,則它可以 不實現(xiàn) 該接口所有的方法。但是對于這個抽象類任何一個非抽象的子類而言,它們父類所實現(xiàn)的接口中的所有抽象方法以及自身

44、所實現(xiàn)接口中的抽象方法都必須有實在的 方法體 。13包的作用有兩個,一是 劃分類名空間 ,二是 控制類之間的訪問 。14封裝也稱 信息隱藏 ,是指類的設(shè)計者只為類的使用者提供類的可以訪問的部分(包括類的數(shù)據(jù)成員和成員方法),而把類中的其他成員 隱藏 起來,使用戶不能訪問的機制。15Java提供了4種訪問權(quán)限來實現(xiàn)封裝機制,即 private 、 protected 、 默認(rèn) 和 public 。16Java中提供兩種多態(tài)機制, 重載 與 覆蓋 。17當(dāng)一個構(gòu)造方法需要調(diào)用另一個構(gòu)造方法時,可以使用關(guān)鍵字 this ,同時這個調(diào)用語句應(yīng)該是整個構(gòu)造方法的 第一條 可執(zhí)行語句。18如果子類自己沒有

45、構(gòu)造方法,那么父類也一定 沒有 (有/沒有)帶參的構(gòu)造方法,此時它將繼承父類的 無參構(gòu)造方法 作為自己的構(gòu)造方法;如果子類自己定義了構(gòu)造方法,則在創(chuàng)建新對象時,它將先執(zhí)行 父類 的構(gòu)造方法,然后再執(zhí)行自己的 構(gòu)造方法 。19對于父類的含參數(shù)構(gòu)造方法,子類可以通過在自己的構(gòu)造方法中使用 super 關(guān)鍵字來調(diào)用它,但這個調(diào)用語句必須是子類構(gòu)造方法的 第一條 可執(zhí)行語句。20創(chuàng)建一個名為myPachkage的包的語句為 package myPackage; ,該語句應(yīng)該放在程序第一行 位置。三、判斷題1Java語言中,構(gòu)造方法是不可以繼承的。( )2子類的成員變量和成員方法的數(shù)目一定大于等于父類的

46、成員變量和成員方法的數(shù)目。( )3抽象方法是一種只有說明而無具體實現(xiàn)的方法。( )4Java語言中,所創(chuàng)建的子類都應(yīng)有一個父類。( )5調(diào)用this 或super構(gòu)造方法的語句必須放在第一條語句。( )6一個類可以實現(xiàn)多個接口,接口可以實現(xiàn)“多重繼承”。 ( )7實現(xiàn)接口的類不能是抽象類。( )8使用構(gòu)造方法只能給實例成員變量賦初值。( )9Java 語言不允許同時繼承一個類并實現(xiàn)一個接口。( )第6章 一、選擇題1給出下面程序代碼:byte a1, a2;byte a3;byte a4;下列數(shù)組操作語句中哪一個是不正確的?( A )Aa2 = a1Ba2 = a3Ca2 = a4Da3 =

47、a4【解析】只有維數(shù)相同的數(shù)組才能相互賦值。2關(guān)于數(shù)組,下列說法中不正確的是( C )。A數(shù)組是最簡單的復(fù)合數(shù)據(jù)類型,是一系列數(shù)據(jù)的集合B數(shù)組元素可以是基本數(shù)據(jù)類型、對象或其他數(shù)組C定義數(shù)組時必須分配內(nèi)存D一個數(shù)組中所有元素都必須具有相同的數(shù)據(jù)類型【解析】數(shù)組元素可以是基本數(shù)據(jù)類型、對象或其他數(shù)組。3設(shè)有下列數(shù)組定義語句:int a = 1, 2, 3;則對此語句的敘述錯誤的是( C )。A定義了一個名為a的一維數(shù)組Ba數(shù)組有3個元素Ca數(shù)組元素的下標(biāo)為13D數(shù)組中每個元素的類型都是整數(shù)【解析】數(shù)組元素的下標(biāo)是從0開始的。4執(zhí)行語句:int x = new int20;后,哪個是正確的?(C)

48、Ax19為空 Bx19未定義Cx19為0 Dx0為空【解析】此語句定義了x數(shù)組后,x0x19的值全部為0。5下面代碼運行后的輸出結(jié)果為( A )。public class X6_1_5 public static void main(String args) AB aa = new AB(); AB bb; bb = aa; System.out.println(bb.equals(aa); class AB int x = 100; AtrueBfalseC編譯錯誤 D100【解析】同一個類的兩個對象可以相互賦值,賦值后兩個對象具有相同的存儲空間,因此是相同的。6已知有定義:String s

49、=I love,下面哪個表達式正確?( A )As += you;Bchar c = s1;Cint len = s.length;DString s = s.toLowerCase();【解析】字符串對象可以執(zhí)行“+=”運算,但不能用s1這種方式取其中的字符,也不能用length求它的長度,可以用length()求其長度,因此B、C不正確,不能再次定義s字符串,因此D不正確。二、填空題1 Object類 是所有類的直接或間接父類,它在 java.lang 包中。2System類是一個功能強大、非常有用的特殊的類,它提供了 標(biāo)準(zhǔn)輸入/輸出 、 運行時 系統(tǒng)信息等重要工具。這個類不能 實例化 ,

50、即不能創(chuàng)建System類的對象,所以它所有的屬性和方法都是 static 類型,引用時以類名System為前綴即可。3Applet由瀏覽器自動調(diào)用的主要方法 init , start , stop 和 destroy 分別對應(yīng)了Applet從初始化、啟動、暫停到消亡的生命周期的各個階段 。4數(shù)組是一種 復(fù)合 數(shù)據(jù)類型,在Java中,數(shù)組是作為 對象 來處理的。數(shù)組是有限元素的有序集合,數(shù)組中的元素具有相同的 數(shù)據(jù)類型 ,并可用統(tǒng)一的 數(shù)組名 和 下標(biāo) 來唯一確定其元素。5在數(shù)組定義語句中,如果在數(shù)據(jù)類型和變量名之間時,之后定義的所有變量都是 數(shù)組 類型,當(dāng)在變量名之后時,只有之前的變量是 數(shù)組

51、 類型,之后沒有的則不是數(shù)組類型。6數(shù)組初始化包括 靜態(tài) 初始化和 動態(tài) 初始化兩種方式。7利用 System 類中的 arraycopy() 方法可以實現(xiàn)數(shù)組元素的復(fù)制;利用 Arrays 類中的 sort() 和 binarySearch() 方法可以實現(xiàn)對數(shù)組元素的排序、查找等操作。8Java語言提供了兩種具有不同操作方式的字符串類: String 類和 StringBuffer 類。它們都是 java.lang.Object 的子類。第7章 內(nèi)部類與異常類一、選擇題1關(guān)于異常的含義,下列描述中最正確的一個是( D )。A程序編譯錯誤B程序語法錯誤C程序自定義的異常事件D程序編譯或運行時發(fā)生的異常事件【解析】異常就是程序編譯或運行時發(fā)生的異常事件。2自定義異常時,可以通過對下列哪一項進行繼承?( C )AError類 BApplet類CException類及其子類DAssertionError類【解析】自定義異常類時,該類必須繼承Exception類及其子類。3對應(yīng)try和catch子句的排列方式,下列哪一項是正確的?( A )A子類異常在前,父類異常在后B父類異常在前,子類異常在后C只能有子類異常 D父類和子類不能同時出現(xiàn)在

溫馨提示

  • 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

提交評論