java程序設(shè)計(jì)試題庫_第1頁
java程序設(shè)計(jì)試題庫_第2頁
java程序設(shè)計(jì)試題庫_第3頁
java程序設(shè)計(jì)試題庫_第4頁
java程序設(shè)計(jì)試題庫_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、68Java語言程序設(shè)計(jì)基礎(chǔ)教程Java語言程序設(shè)計(jì)基礎(chǔ)教程練習(xí)思考題參考答案第1章 Java程序設(shè)計(jì)概述1.1單項(xiàng)選擇題1編譯Java Application源文件將產(chǎn)生相應(yīng)的字節(jié)碼文件,擴(kuò)展名是什么 A. .javaB. .class C. .html D. .exe解答:B2Java語言具有許多優(yōu)點(diǎn)和特點(diǎn),下列選項(xiàng)中,哪個(gè)反映了Java中“一次編譯,隨處運(yùn)行”的特點(diǎn)。 A. 簡單性B. 平臺(tái)無關(guān)性 C. 面向?qū)ο笮訢. 安全性解答:B3Java語言具有許多優(yōu)點(diǎn)和特點(diǎn),下列選項(xiàng)中,哪個(gè)反映了Java中并行機(jī)制的特點(diǎn)。 A. 多線程B. 平臺(tái)無關(guān)性 C. 面向?qū)ο笮訢. 安全性解答:A4在J

2、ava語言中,下列哪些語句關(guān)于內(nèi)存回收的說明是正確的? A程序員必須創(chuàng)建一個(gè)線程來釋放內(nèi)存; B內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存 ; C內(nèi)存回收程序允許程序員直接釋放內(nèi)存 ; D內(nèi)存回收程序可以在指定的時(shí)間釋放內(nèi)存對象解答:B5一個(gè)Java源文件中最多只能有多少個(gè)public類。 A. 1個(gè)B. 2個(gè) C. 3個(gè) D. 任意多個(gè)解答:A6下面哪一個(gè)不是Java語言所具有的特點(diǎn)。 A. 沒有全局變量,在類的定義外部沒有任何的變量定義; B. 不直接支持指針操作,而使用更安全的引用類型; C. 支持子類對父類的多繼承;D. 具有自動(dòng)垃圾收集功能;解答:C7下面哪一個(gè)不是Java開發(fā)工具包JDK的組成部

3、分。 A. Java的編譯器; B. Java的解釋器; C. Java的API繼承類庫;D. Eclipse開發(fā)工具;解答:C8JDK提供的編譯器是( )。 A. java.exeB. javac.exe C. javap.exe D. javaw.exe解答:B9作為Java應(yīng)用程序入口的main方法,其聲明格式可以是( ) A. public void main(String args) B. public static void main(String args) C. public static void Main(String * args) D. public int main(

4、String args)解答:B10下列說法正確的是( A ) A、 JAVA程序的main方法必須寫在類里面B、 JAVA程序中可以有多個(gè)main方法 C、 JAVA程序中類名必須與文件名一樣 D、 JAVA程序的main方法中如果只有一條語句,可以不用(大括號(hào))括起來11下列哪些語句關(guān)于Java內(nèi)存回收的說明是正確的? ( B ) A、程序員必須創(chuàng)建一個(gè)線程來釋放內(nèi)存 B、內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存 C、內(nèi)存回收程序允許程序員直接釋放內(nèi)存 D、內(nèi)存回收程序可以在指定的時(shí)間釋放內(nèi)存對象1.2填空題1、 開發(fā)與運(yùn)行Java程序需要經(jīng)過的三個(gè)主要步驟為_、_和_。解答:編輯源程序 、編譯生成字

5、節(jié)碼和解釋運(yùn)行字節(jié)碼2、使用Java編譯器_ javac_.exe編譯源文件得到字節(jié)碼文件。3、Java應(yīng)用程序必須通過Java解釋器_JAVA_.exe來解釋執(zhí)行其字節(jié)碼文件。4、如果Java源文件中有一個(gè)類是public類,那么源文件的名字必須與這個(gè)類的名字完全_相同_,擴(kuò)展名是.java 。5、Java應(yīng)用程序總是從主類的_main_方法開始執(zhí)行1.3簡答題13.簡述Java程序的開發(fā)過程? (1)使用一個(gè)文字編輯器,編寫源文件。(2)使用java編譯器,編譯源文件得到字節(jié)碼文件。(3)解釋運(yùn)行字節(jié)碼,分兩種java應(yīng)用程序必須通過java解釋器來解釋執(zhí)行,java小應(yīng)用程序必須使用解釋

6、器和瀏覽器運(yùn)行程序。1.什么是Java虛擬機(jī)?為什么Java被稱作是“平臺(tái)無關(guān)的編程語言”?解答:Java虛擬機(jī)是一個(gè)可以執(zhí)行Java字節(jié)碼的虛擬機(jī)進(jìn)程。Java源文件被編譯成能被Java虛擬機(jī)執(zhí)行的字節(jié)碼文件。Java被設(shè)計(jì)成允許應(yīng)用程序可以運(yùn)行在任意的平臺(tái),而不需要程序員為每一個(gè)平臺(tái)單獨(dú)重寫或者是重新編譯。Java虛擬機(jī)讓這個(gè)變?yōu)榭赡?,因?yàn)樗赖讓佑布脚_(tái)的指令長度和其他特性。3.Java語言的關(guān)鍵特點(diǎn)有哪些?解答:簡單性平臺(tái)無關(guān)性面向?qū)ο笮园踩苑植际蕉嗑€程動(dòng)態(tài)性1.4綜合題第2章 Java基本的程序設(shè)計(jì)結(jié)構(gòu)2.1單項(xiàng)選擇題1、 下面哪一項(xiàng)在java中是非法的標(biāo)識(shí)符?( )A. $us

7、erB. pointC. You&meD. _endline解答:2、 若有定義 int a=9,b=6; 那么a>b的值是:( )A. 0B. 1C. falseD. true解答:D3、執(zhí)行完以下代碼int x = new int25;后,以下說明正確的是:( )A. x24為0 B. x24未定義 C. x25為0 D. x0為空解答:A4、Java應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是( )。int x=2,3,-8,7,9; int max=x0; for(int i=1;i<x.length;i+) if(xi>max) max=xi; Sys

8、tem.out.println(max); A. 2B. -8C. 7D. 9解答:5、設(shè) x = 1 , y = 2 , z = 3,則表達(dá)式 yz/x 的值是( )A. 3B. 3.5 C. 4D. 5解答:A5、執(zhí)行System.out.println(5/4),這條代碼的輸出結(jié)果是( )A. 1B. 1.25 C. 1.5D. 0解答:A6、下列語句有錯(cuò)誤的是:( )A. int a; B. int b=new int10; C. int c=new int; D. int d=null;解答:C7、下列語句有錯(cuò)誤的是:( )A. int a=new int55; B. int b=n

9、ew int55;C. int c=new int55; D. int d=new int5,5;解答:D8、下列哪一個(gè)不屬于Java中的8種基本數(shù)據(jù)類型( )A. double; B.char;C. int; D. String;解答:D9、以下數(shù)據(jù)類型存儲(chǔ)空間最大的是( )。(A)byte (B)long (C)float (D)char解答:B10、System.out.println("5" + 2);的輸出結(jié)果應(yīng)該是()。A 52 B7 C2 D5答案:A11在類的定義中可以有兩個(gè)同名方法,每個(gè)方法的參數(shù)不同,這種現(xiàn)象稱為方法(D )。 (A)封裝 (B)繼承 (

10、C)覆蓋 (D)重載12java中定義字符串String s=”pzhu”,下面操作可以取得字符串長度的是( )。 A. s.length() B. s.length C. s.size() D. length(s)解答:A13指出下列程序運(yùn)行的結(jié)果 (B)(很難)public class Example String str = new String("good"); char ch = 'a', 'b', 'c' ; public static void main(String args) Example ex = new

11、 Example(); ex.change(ex.str, ex.ch); System.out.print(ex.str + " and "); System.out.print(ex.ch); public void change(String str, char ch) str = "test ok" ch0 = 'g' A、 good and abcB、 good and gbcC、 test ok and abcD、 test ok and gbc14下面代碼的運(yùn)行結(jié)果為:(C)(較難)import java.io.*;impo

12、rt java.util.*;public class foo public static void main (String args) String s; System.out.println("s=" + s); A 代碼得到編譯,并輸出“s=”B 代碼得到編譯,并輸出“s=null”C 由于String s沒有初始化,代碼不能編譯通過D 代碼得到編譯,但捕獲到 NullPointException異常15關(guān)于以下程序段,正確的說法是( C ) 1 String s1=”abc”+”def”; 2 String s2=new String(s1); 3 if(s1=

13、=s2) 4 System.out.println(“= = succeeded”); 5 if (s1.equals(s2) 6 System.out.println(“.equals() succeeded”);A、行4與行6都將執(zhí)行 B、行4執(zhí)行,行6不執(zhí)行 C、行6執(zhí)行,行4不執(zhí)行 D、行4、行6都不執(zhí)行16Java application中的主類需包含main方法,main方法的返回類型是什么?( D ) A、int B、float C、double D、void17為一個(gè)boolean類型變量賦值時(shí),可以使用(B )方式 A、 boolean = 1; B、 boolean a =

14、 (9 >= 10); C、 boolean a="真" D、 boolean a = = false;18表達(dá)式(11+3*8)/4%3的值是( D ) A、 31 B、 0 C、 1 D、 219運(yùn)算符優(yōu)先級別排序正確的是( A) (太難)A、 由高向低分別是:()、!、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符; B、 由高向低分別是:()、關(guān)系運(yùn)算符、算術(shù)運(yùn)算符、賦值運(yùn)算符、!、邏輯運(yùn)算符; C、 由高向低分別是:()、算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符、!、賦值運(yùn)算符; D、 由高向低分別是:()、!、關(guān)系運(yùn)算符、賦值運(yùn)算符、算術(shù)運(yùn)算符、邏輯運(yùn)算符;20

15、下列值不為true的表達(dá)式有(C )。A、 "john" = = "john" B、 "john".equals("john") C、 "john" = "john" D、 "john".equals(new String("john")21、下面的方法,當(dāng)輸入為2的時(shí)候返回值是多少?(D)(很難) public static int getValue(int i) int result = 0; switch (i) case 1:

16、result = result + i; case 2: result = result + i * 2; case 3: result = result + i * 3; return result; A0 B2 C4 D10答案:D解析:注意這里case后面沒有加break,所以從case 2開始一直往下運(yùn)行。22、下面有關(guān)for循環(huán)的描述正確的是( A ) A、 for循環(huán)體語句中,可以包含多條語句,但要用大括號(hào)括起來 B、 for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況 C、 在for循環(huán)中,不能使用break語句跳出循環(huán) D、 for循環(huán)是先執(zhí)行循環(huán)體語句,后進(jìn)行條件判斷23、score是

17、一個(gè)整數(shù)數(shù)組,有五個(gè)元素,已經(jīng)正確初始化并賦值,仔細(xì)閱讀下面代碼,程序運(yùn)行結(jié)果是( B ) temp = score0; for (int index = 1;index < 5;index+) if (scoreindex < temp) temp = scoreindex; A. 求最大數(shù) B. 求最小數(shù) C. 找到數(shù)組最后一個(gè)元素 D. 編譯出錯(cuò)26、2.2填空題1、Java語言是一種完全的_面向?qū)ο?_程序設(shè)計(jì)語言 2、String s1=“China”; int n=s1.length( ); n的值為_5_3、在Java語言中,基本數(shù)據(jù)類型包括:_整數(shù)類型、_浮點(diǎn)類型、

18、_字符類型_和_布爾類型17、在Java的基本數(shù)據(jù)類型中,char型采用Unicode編碼方案,每個(gè)Unicode碼占用_2_字節(jié)內(nèi)存空間,這樣,無論是中文字符還是英文字符,都是占用_2_字節(jié)內(nèi)存空間。18、設(shè) x = 2 ,則表達(dá)式 ( x + + )3 的值是_0_。20、設(shè)有數(shù)組定義:int MyIntArray = 10, 20, 30, 40, 50, 60, 70 ;則執(zhí)行以下幾個(gè)語句后的輸出結(jié)果是: 120 。int MyIntArray = 10, 20, 30, 40, 50, 60, 70 ;int s = 0;for (int i = 0; i < MyIntArr

19、ay.length; i+)if (i % 2 = 1)s += MyIntArrayi;System.out.println(s);21、數(shù)組對象的長度在數(shù)組對象創(chuàng)建之后,就_不會(huì)_改變。數(shù)組元素的下標(biāo)總是從_0_開始。22、對于數(shù)組intt=1,2,3,4,5,6來說,t.length等于_2_,t0.length等于_3_。2.3簡答題1、Java的基本數(shù)據(jù)類型有哪8種,每種類型的內(nèi)存空間分別是多少。2.4綜合題26、編程計(jì)算1020的整數(shù)的平方值,將結(jié)果保存在一個(gè)數(shù)組中。27、編寫一個(gè)程序使之從鍵盤讀入10個(gè)整數(shù)存入整型數(shù)組a中,并輸出這10個(gè)整數(shù)的最大值和最小值。import jav

20、a.util.Scanner;public class lianxi30 public static void main(String args) Scanner temp;float sum = new float11;float max, min;for (int i = 0; i < 10; i+) System.out.println("請輸入第一個(gè)數(shù)字(回車結(jié)束):");temp = new Scanner(System.in);String a = temp.nextLine();sumi = Integer.parseInt(a); /獲取輸入的字符串m

21、ax = sum0;min = sum0;for (int j = 1; j < 10; j+)if (max < sumj)max = sumj;else if (min > sumj)min = sumj;System.out.println(max);System.out.println(min);31、如果我國經(jīng)濟(jì)以每年10%的速度保持穩(wěn)定增長,請編寫一個(gè)程序,計(jì)算每年達(dá)到多少,多少年可以實(shí)現(xiàn)總量翻兩番。class exA4_1 public static void main(String args) int a=0; double i=0.10,sum=1; whi

22、le(sum<=4) sum=(i+1)*sum; a+; System.out.println("第"+a+"年達(dá)到"+sum); System.out.println("需要"+a+"年實(shí)現(xiàn)兩番"); 第3章 類和對象3.1單項(xiàng)選擇題1、 下列關(guān)于變量的敘述哪個(gè)是錯(cuò)的?( )A. 實(shí)例變量是類的成員變量。B. 在方法中定義的局部變量在該方法被執(zhí)行時(shí)創(chuàng)建。C. 實(shí)例變量用關(guān)鍵字static聲明。D. 局部變量在使用前必須被初始化。解答:C2、 在Java語言中,下列哪個(gè)包是編譯器自動(dòng)導(dǎo)入的?( )A. ja

23、va.appletB. java.lang C. java.ioD. java.awt解答:6、 不允許作為類及類成員的訪問控制符的是( )。A. publicB. private C. staticD. protected 解答:C7、 為AB類的一個(gè)無形式參數(shù)無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就可以調(diào)用它,該方法頭的形式為( )。A、 static void method( )B、 public void method( )C、 final void method( )D、 abstract void method( )解答:A8、可以在下面代碼段point x

24、處寫入的是?( )/point x public class Interesting /do something A.String str;B.static int PI=3.14;C.public class MyClass/do other thingD.import java.awt.*; 解答:D9、Java提供的許多類在不同的包中,使用下面哪個(gè)語句可以引入包中的類。A. packageB. include C. import D. add 解答:C11、已知A類被打包在packageA , B類被打包在packageB ,且B類被聲明為public ,且有一個(gè)成員變量x被聲明為pro

25、tected控制方式 。C類也位于packageA包,且繼承了B類 。則以下說法正確的是:( )A、A類的實(shí)例不能訪問到B類的實(shí)例B、A類的實(shí)例能夠訪問到B類一個(gè)實(shí)例的x成員C、C類的實(shí)例可以訪問到B類一個(gè)實(shí)例的x成員D、C類的實(shí)例不能訪問到B類的實(shí)例解答:C(太難)13、在Java中,關(guān)于final關(guān)鍵字的說法正確的是( )A、如果修飾變量,則一旦賦了值,就等同一個(gè)常量。B、如果修飾類,則該類只能被一個(gè)子類繼承。C、如果修飾方法,則該方法不能在子類中被覆蓋。D、如果修飾方法,則該方法所在的類不能被繼承。解答:A,C14、關(guān)于構(gòu)造方法以下說法錯(cuò)誤的是 ( D )。 ()構(gòu)造方法名必須與類名一致

26、 ()構(gòu)造方法可以重載 ()構(gòu)造方法是通過new來調(diào)用 ()每個(gè)類都必須編寫構(gòu)造方法代碼15、關(guān)于類的定義以下說法錯(cuò)誤( B )。 (A)類定義使用class關(guān)鍵字 (B)每個(gè)類中必須有一個(gè)main方法 (C)一個(gè)包可以包含多個(gè)類 (D)java中所有類都是Object類的子類16、在創(chuàng)建對象時(shí)必須(C) A) 先聲明對象,然后才能使用對象 B) 先聲明對象,為對象分配內(nèi)存空間,然后才能使用對象 C) 先聲明對象,為對象分配內(nèi)存空間,對對象初始化,然后才能使用對象 D) 上述說法都對17、在調(diào)用方法時(shí),若要使方法改

27、變實(shí)參的值,可以(B) A) 用基本數(shù)據(jù)類型作為參數(shù) B) 用對象作為參數(shù) C) A和B都對 D) A和B都不對18、關(guān)于以下程序代碼的說明正確的是( D )class HasStatic private static int x=100;public static void main(String args )HasStatic hs1=new HasStatic( ); hs1.x+; HasStatic hs2=new HasStatic( ); hs2.x+; hs1=new HasStatic( ); hs1.x+; HasStatic.x- -; System.out.printl

28、n(“x=”+x); A、 5行不能通過編譯,因?yàn)橐昧怂接徐o態(tài)變量 B、 10行不能通過編譯,因?yàn)閤是私有靜態(tài)變量C、 程序通過編譯,輸出結(jié)果為:x=103 D、 程序通過編譯,輸出結(jié)果為:x=10219、以下關(guān)于構(gòu)造函數(shù)的描述錯(cuò)誤的是( A )。 A、構(gòu)造函數(shù)的返回類型只能是void型。 B、構(gòu)造函數(shù)是類的一種特殊函數(shù),它的方法名必須與類名相同。 C、構(gòu)造函數(shù)的主要作用是完成對類的對象的初始化工作。D、一般在創(chuàng)建新對象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù)。20、Java中,在如下所示的Test類中,共有(C )個(gè)構(gòu)造方法。 public class Test private int x; publi

29、c Test() x=35; public void Test(double f) This.x=(int)f; public Test(String s) A、 0 B、 1 C、 2 D、 321、在Java中,關(guān)于構(gòu)造方法,下列說法錯(cuò)誤的是( C ) A、 構(gòu)造方法的名稱必須與類名相同 B、 構(gòu)造方法可以帶參數(shù) C、 構(gòu)造方法不可以重載 D、 構(gòu)造方法絕對不能有返回值22、在Java語言中,下列關(guān)于類的繼承的描述,正確的是(B )。 A、 一個(gè)類可以繼承多個(gè)父類 B、 一個(gè)類可以具有多個(gè)子類 C、 子類可以使用父類的所有方法 D、 子類一定比父類有更多的成員方法23、分析選項(xiàng)中關(guān)于Jav

30、a中this關(guān)鍵字的說法正確的是( A ) A、 this關(guān)鍵字是在對象內(nèi)部指代自身的引用 B、 this關(guān)鍵字可以在類中的任何位置使用 C、 this關(guān)鍵字和類關(guān)聯(lián),而不是和特定的對象關(guān)聯(lián) D、 同一個(gè)類的不同對象共用一個(gè)this24、在Java接口中,下列選項(xiàng)中有效的方法聲明是( A )。 A、 public void aMethod(); B、 public final void aMethod(); C、 protected void aMethod(); D、 private void aMethod();25、下列選項(xiàng)中關(guān)于Java中super關(guān)鍵字的說法正確的是(A )。 A、

31、super關(guān)鍵字是在子類對象內(nèi)部指代其父類對象的引用B、 super關(guān)鍵字不僅可以指代子類的直接父類,還可以指代父類的父類 C、 子類通過super關(guān)鍵字只能調(diào)用父類的方法,而不能調(diào)用父類的屬性 D、 子類通過super關(guān)鍵字只能調(diào)用父類的屬性,而不能調(diào)用父類的方法3.2填空題1、在Java程序中,通過類的定義只能實(shí)現(xiàn)_單重繼承_,但通過接口的定義可以實(shí)現(xiàn)多_多重繼承_。2、_抽象(abstract)_方法是一種僅有方法頭,沒有具體方法體和操作實(shí)現(xiàn)的方法,該方法必須在抽象類之中定義。_final_方法是不能被當(dāng)前類的子類重新定義的方法。3、面向?qū)ο蟪绦蛟O(shè)計(jì)的三個(gè)特征是_封裝、_多態(tài)、_繼承4、

32、Java是面向?qū)ο笳Z言,類是客觀事物的_抽象_,而對象是類的_實(shí)例_。5、如果在子類中想使用被子類隱藏的父類成員變量或方法,就可以使用關(guān)鍵字_ super_。6、Java中有一種叫作_構(gòu)造方法_的特殊方法用來對類的對象成員進(jìn)行初始化。7、JAVA語言中提供了兩種類型的字符串類來處理字符串,它們是_String_和_StringBuffer類8、Java語言中,所有 的類都是_Object的子類,Java的窗口通常是_JFrame_的子類,_抽象_類只能定義但不能被實(shí)例化,_ 最終_類不能被繼承9、一般Java程序的類體由兩部分組成:一部分是_屬性_,另一部分是_方法_10、分別用_class_

33、關(guān)鍵字來定義類,用_new_關(guān)鍵字來分配實(shí)例存儲(chǔ)空間。11、Java中類成員的限定詞有以下幾種:_ private_ _, public _ _, protected _ _, _缺省_ _。其中,_public _的限定的范圍最大。類中限定為_ private _的成員,只能被這個(gè)類本身內(nèi)部訪問。12、Java類中,如果類的定義者沒有顯式的定義任何構(gòu)造方法,系統(tǒng)將自動(dòng)提供一個(gè)_無參默認(rèn)_構(gòu)造方法。13、在子類中定義與父類的相同的方法,若在多個(gè)子類中定義相同的方法,則可以調(diào)用不同子類中的相同方法而實(shí)現(xiàn)不同的功能,這實(shí)現(xiàn)了程序運(yùn)行時(shí)的_ 多態(tài) 。3.3簡答題1. 簡單闡述方法的重載和方法的重寫之

34、間的區(qū)別解答:重寫是子類的方法覆蓋父類的方法,要求方法名和參數(shù)都相同重載是在同一個(gè)類中的兩個(gè)或兩個(gè)以上的方法,擁有相同的方法名,但是參數(shù)卻不相同2、 簡述實(shí)例變量和類變量的區(qū)別。解答:類變量也叫靜態(tài)變量,也就是在變量前加了static 的變量;實(shí)例變量也叫對象變量,即沒加static 的變量;區(qū)別在于:類變量是所有對象共有,其中一個(gè)對象將它值改變,其他對象得到的就是改變后的結(jié)果;而實(shí)例變量則屬對象私有,某一個(gè)對象將其值改變,不影響其他對象;2、簡述實(shí)例方法和類方法的區(qū)別解答:實(shí)例方法可以對當(dāng)前對象的實(shí)例變量進(jìn)行操作,也可以對類變量進(jìn)行操作,實(shí)例方法由實(shí)例對象調(diào)用。但類方法不能訪問實(shí)例變量,只能

35、訪問類變量。類方法可以由類名直接調(diào)用,也可由實(shí)例對象進(jìn)行調(diào)用。類方法中不能使用this或super關(guān)鍵字。3、面向?qū)ο蟮娜齻€(gè)基本特征是什么,分別簡單介紹每個(gè)特征。解答:三大特性是:封裝,繼承,多態(tài)。封裝性就是把對象的屬性和服務(wù)結(jié)合成一個(gè)獨(dú)立的單位,并盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。特殊類的對象擁有其一般類的全部屬性與服務(wù),稱作特殊類對一般類的繼承。對象的多態(tài)性是指在一般類中定義的屬性或服務(wù)被特殊類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個(gè)屬性或服務(wù)在一般類及其各個(gè)特殊類中具有不同的語義。4、簡單闡述成員變量和局部變量的區(qū)別。解答:1)成員變量在整個(gè)類內(nèi)都有效,局部變量只在定義它

36、的方法內(nèi)有效。2)成員變量又分為實(shí)例成員變量(簡稱實(shí)例變量)和類變量(也稱靜態(tài)變量),如果成員變量的類型前面加上關(guān)鍵字static,這樣的成員變量稱為類變量或靜態(tài)變量。3)如果局部變量的名字與成員變量的名字相同,則成員變量被隱藏,也就是說,這個(gè)成員變量在這個(gè)方法內(nèi)暫時(shí)失效。這時(shí)如果想在該方法內(nèi)使用成員變量,必須使用關(guān)鍵字this。5、 簡述對象的引用和實(shí)體。解答:當(dāng)用類創(chuàng)建一個(gè)對象時(shí),類中的成員變量被分配內(nèi)存空間,這些內(nèi)存空間稱為該對象的實(shí)體,而對象中存放著引用,以確保實(shí)體由該對象操作使用。沒有實(shí)體的對象稱為空對象,空對象不能使用,即不能讓一個(gè)空對象去調(diào)用方法產(chǎn)生行為。6、簡述this關(guān)鍵字的

37、意義,以及它在成員方法和構(gòu)造方法中如何使用。解答:this是Java的一個(gè)關(guān)鍵字,表示某個(gè)對象。this可以出現(xiàn)在實(shí)例方法和構(gòu)造方法中,但不可以出現(xiàn)在類方法中。this可以出現(xiàn)在實(shí)例方法和構(gòu)造方法中,但不可以出現(xiàn)在類方法中。this關(guān)鍵字出現(xiàn)在類的構(gòu)造方法中時(shí),代表使用該構(gòu)造方法所創(chuàng)建的對象。實(shí)例方法必須通過對象來調(diào)用,當(dāng)this關(guān)鍵字出現(xiàn)在類的實(shí)例方法中時(shí),代表正在調(diào)用該方法的當(dāng)前對象。成員函數(shù)中定義了和成員變量中相同的變量時(shí),引用成員變量要用this;構(gòu)造函數(shù)中調(diào)用同一個(gè)類的其他構(gòu)造函數(shù)時(shí)用this。7、簡單描述Java的參數(shù)傳值中的兩種方式,基本數(shù)據(jù)類型參數(shù)的傳值和引用類型參數(shù)的傳值?解

38、答:在基本數(shù)據(jù)類型參數(shù)的傳值中,基本數(shù)據(jù)類型的參數(shù)向該參數(shù)傳遞的值的級別不可以高于該參數(shù)的級別。在引用類型參數(shù)的傳值中,Java的引用類型數(shù)據(jù)包括對象、數(shù)組和接口,當(dāng)參數(shù)是引用類型時(shí),“傳值”傳遞的是變量的引用而不是變量所引用的實(shí)體。如果改變參數(shù)變量所引用的實(shí)體,就會(huì)導(dǎo)致原變量的實(shí)體發(fā)生同樣的變化,但是如果改變參數(shù)的引用不會(huì)影響向其傳值的變量的引用。8、基本數(shù)據(jù)類型和對象作為參數(shù)傳遞的不同? 解答:(1) 基本數(shù)據(jù)類型作為參數(shù)在方法中傳遞的是值傳遞。(2) 對象是引用傳遞,當(dāng)對象作為參數(shù)傳遞時(shí),傳遞的是對象的地址。3.4綜合題1、定義一個(gè)“點(diǎn)”(Point)類用來表示三維空間中的點(diǎn),類體的成員

39、變量x,y,z分別表示三維空間的坐標(biāo)。類體中具有如下成員方法的定義:1)構(gòu)造方法Point()可以生成具有特定坐標(biāo)的點(diǎn)對象。2)setX(), setY(), setZ()為可以設(shè)置三個(gè)坐標(biāo)的方法。3.)getDistance()為可以計(jì)算該點(diǎn)距離原點(diǎn)距離平方的方法。解答:class Pointdouble x,y,z ;Point(double _x,double _y,double _z)x = _x ;y = _y ;z =_z ;void setX(double _x)x=_x ;void setY(double _y)y=_y ;void setZ(double _z)z=_z ;d

40、ouble getDistance()return ( x*x+y*y+z*z) ;2、編寫一個(gè)Java應(yīng)用程序Test類,實(shí)現(xiàn)成員方法max(a,b)的重載。具體要求如下:a)編寫void max(int a,int b)成員方法,對兩個(gè)整數(shù)進(jìn)行大小的比較,輸出打印較大的那個(gè)整數(shù)。b)編寫void max(float a,float b)成員方法,對兩個(gè)float數(shù)進(jìn)行大小的比較,輸出打印較大的那個(gè)float數(shù)。c)編寫void max(double a,double b)成員方法,對兩個(gè)double數(shù)進(jìn)行大小的比較,輸出打印較大的那個(gè)double數(shù)。public class Testvoi

41、d max(int a,int b)System.out.println(a>b ? a:b) ;void max(float a,float b)System.out.println(a>b ? a:b) ;void max(double a, double b)System.out.println(a>b ? a:b) ;public static void main(String args)Test t =new Test() ;t.max(3,4) ;3、編寫一個(gè)矩形類對數(shù)學(xué)中的矩形進(jìn)行抽象描述,并具有方法可以計(jì)算矩形的周長和面積,具體分為以下三個(gè)子任務(wù)完成。(1)創(chuàng)

42、建Rectangle類,添加屬性width、height,并定義構(gòu)造方法Rectangle(double _width, double _height); (2)在Rectangle類中添加兩種方法computCircum()和computArea()分別計(jì)算矩形的周長和面積; (3)編程利用Rectangle對象輸出一個(gè)30*40的矩形的周長和面積。解答:public class TestRectang public static void main(String args) / TODO Auto-generated method stubRectangle rect1 = new Rec

43、tangle(20,30) ;System.out.println(putArea();System.out.println(putCircum();class Rectangledouble width,height ;Rectangle()width = 0 ;height = 0 ;Rectangle(double _width,double _height)width = _width ;height = _height ;double computArea() return width*height ;double computCircum()return 2*(width+heig

44、ht) ;第4章 繼承、接口和內(nèi)部類4.1單項(xiàng)選擇題1、 Java中用于定義接口的關(guān)鍵字是( )A、importB、packageC、class D、interface解答:D2、 以下關(guān)于abstract的說法,正確的是( )A、abstract只能修飾類B、abstract只能修飾方法C、abstract類中必須有abstract方法D、abstarct方法所在的類必須用abstract修飾解答:D3、 下列哪種說法是正確的( ) A、私有方法不能被子類覆蓋。 B、子類可以覆蓋超類中的任何方法。 C、覆蓋方法可以聲明自己拋出的異常多于那個(gè)被覆蓋的方法。 D、覆蓋方法中的參數(shù)清單必須是被覆蓋

45、方法參數(shù)清單的子集。 解答:A4、關(guān)于類繼承的說法,正確的是( )A、Java 類允許多重繼承B、Java接口允許多繼承C、接口和類都允許多繼承D、接口和類都不允許多繼承解答:B5、關(guān)于抽象類,正確的是_。 A. 抽象類中不可以有非抽象方法B. 某個(gè)非抽象類的父類是抽象類,則這個(gè)子類必須重載父類的所有抽象方法C. 可以用抽象類直接去創(chuàng)建對象D. 接口和抽象類是同一個(gè)概念解答:B8、 抽象類A和抽象類B的定義如下:abstract class A abstract int getinfo();public class B extends A private int a = 0;public in

46、t getinfo() return a;public static void main(String args) B b = new B();System.out.println(b.getinfo();關(guān)于上述代碼說明正確的是( )。A. 輸出結(jié)果為0 B.通過編譯但沒有輸出任何結(jié)果C. 第5行不能通過編譯 D. 程序第2行不能通過編譯解答:A9、下面程序的運(yùn)行結(jié)果是_class ex4_5_11_A protected static int count = 0;public ex4_5_11_A() count+;class ex4_5_11_B extends ex4_5_11_A p

47、ublic ex4_5_11_B() count+;class ex4_5_11 public static void main(String args) ex4_5_11_B x = new ex4_5_11_B();System.out.println("count=" + x.count);A. count=1 B. count=2C. count=3 D. count=4解答:B10、設(shè)有下面兩個(gè)類的定義:class Person long id; / 身份證號(hào) String name; / 姓名 class Student extends Person int s

48、core; / 入學(xué)總分 int getScore() return score; 問:類Person和類Student的關(guān)系是( )A、包含關(guān)系 B、繼承關(guān)系 C、關(guān)聯(lián)關(guān)系 D、無關(guān)系,上述類定義有語法錯(cuò)誤解答:B11、以下程序代碼錯(cuò)誤的是( B )。 abstract class P class A extends P abstract class B extends P ()P p=new A(); ()P p=new B();()A a=new A(); ()P p=new P()void foo();12、下面是People和Child類的定義和構(gòu)造方法,每個(gè)構(gòu)造方法都輸出編號(hào)。在執(zhí)

49、行new Child("mike")的時(shí)候都有哪些構(gòu)造方法被順序調(diào)用?請選擇輸出結(jié)果 ( D)class People String name; public People() System.out.print(1); public People(String name) System.out.print(2); = name; class Child extends People People father; public Child(String name) System.out.print(3); = name; father = new People(name + ":F"); public Child() System.out.print(4); A312 B 32 C 432 D 13213、選項(xiàng)中哪一行代碼可以替換題目中/add code here而不產(chǎn)生編譯錯(cuò)誤?(A)public abstract class MyClass public int constInt = 5; /add code here public void method() A public a

溫馨提示

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

評論

0/150

提交評論