Java-2實用教程(第5版)習題解答_第1頁
Java-2實用教程(第5版)習題解答_第2頁
Java-2實用教程(第5版)習題解答_第3頁
Java-2實用教程(第5版)習題解答_第4頁
Java-2實用教程(第5版)習題解答_第5頁
免費預覽已結(jié)束,剩余46頁可下載查看

下載本文檔

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

文檔簡介

1、習題解答習題1 (第 1章)一、問答題1. Java語言的主要貢獻者是誰?2 開發(fā)Java應用程序需要經(jīng)過哪些主要步驟?3 Java源文件是由什么組成的? 一個源文件中必須要有public類嗎?4 .如果JDK的安裝目錄為 D:jdk,應當怎樣設(shè)置 path和classpath的值?5. Java源文件的擴展名是什么?Java字節(jié)碼的擴展名是什么?6 .如果Java應用程序主類的名字是Bird,編譯之后,應當怎樣運行該程序?7 .有哪兩種編程風格,在格式上各有怎樣的特點?1. James Gosling2 .需3個步驟:1) 用文本編輯器編寫源文件。2) 使用javac編譯源文件,得到字節(jié)碼文

2、件。3) 使用解釋器運行程序。3 .源文件由若干個類所構(gòu)成。對于應用程序,必須有一個類含有public static voidmain(String args)的方法,含有該方法的類稱為應用程序的主類。不一定,但至多有一個public 類。4. set classpath=D:jdkjrelibrt.jar;.;5. java 禾口 class6. java Bird7. 獨行風格(大括號獨占行)和行尾風格(左大擴號在上一行行尾,右大括號獨占行)二、選擇題1. B。2. D。1. 下列哪個是JDK提供的編譯器?A) java.exeB) javac.exeC) javap.exeD) java

3、w.exe2. 下列哪個是 Java應用程序主類中正確的main方法?A) public void main (Stri ng args)B) static void main (Stri ng args)C) public static void Mai n (Stri ng args)D) public static void main (String args)三、閱讀程序 閱讀下列Java源文件,并回答問題。public class Pers on void speakHello() System.out.print("您好,很高興認識您 ”);System.out.pri

4、ntln (” nice to meet you");class Xiti public static void main(String args) Pers on zha ng = new Pers on();zha ng.speakHello();(a) 上述源文件的名字是什么?(b) 編譯上述源文件將生成幾個字節(jié)碼文件?這些字節(jié)碼文件的名字都是什么?(c) 在命令行執(zhí)行java Person得到怎樣的錯誤提示?執(zhí)行 java xiti得到怎樣的錯誤提示? 執(zhí)行java Xiti.class得到怎樣的錯誤提示?執(zhí)行 java Xiti得到怎樣的輸出結(jié)果?1. ( a) Perso

5、n.java。 ( b)兩個字節(jié)碼,分別是 Person.class 和 Xiti.class。 ( c)得到 “ NoSuchMethodError ”,得到"NoClassDefFoundError: Xiti/class ”,得到"您好,很高興認 識您 nice to meet you”習題2 (第2章)一、問答題1. 什么叫標識符?標識符的規(guī)則是什么?false是否可以作為標識符。2. 什么叫關(guān)鍵字? true和false是否是關(guān)鍵字?請說出 6個關(guān)鍵字。3. Java的基本數(shù)據(jù)類型都是什么?4. float型常量和double型常量在表示上有什么區(qū)別?5. 怎樣獲

6、取一維數(shù)組的長度,怎樣獲取二維數(shù)組中一維數(shù)組的個數(shù)。1. 用來標識類名、變量名、方法名、類型名、數(shù)組名、文件名的有效字符序列稱為標識符。 標識符由字母、下劃線、美元符號和數(shù)字組成,第一個字符不能是數(shù)字。false不是標識符。2. 關(guān)鍵字就是Java語言中已經(jīng)被賦予特定意義的一些單詞,不可以把關(guān)鍵字作為名字來用。true 禾口 false 不是關(guān)鍵字。 6 個關(guān)鍵字: class impleme nts in terface enum exte nds abstract o3. boolean, char, byte, short, int, long , float, double。4. fl

7、oat常量必須用F或f為后綴。double常量用D或d為后綴,但允許省略后綴。5. 一維數(shù)組名.length。二維數(shù)組名.length。二、選擇題adf2. 下列哪三項是正確的float變量的聲明?A. float foo = -1;B. float foo = 1.0;C. float foo = 42e1;D. float foo = 2.02f;E. float foo = 3.03d;F. float foo = 0x0123;3.下列哪一項敘述是正確的?A. charB. charC. char型字符在 型字符在 型字符在 型字符在Uni codeUni codeUni codeUn

8、i codeb表中的位置范圍是 表中的位置范圍是 表中的位置范圍是 表中的位置范圍是D. char4以下哪兩項是正確的char型變量的聲明?A. char ch = "R"B. char ch = ''0 至 327670 至 655350 至 65536-32768 至 32767beC. char ch = 'ABCD:D. char ch = "ABCD"E. char ch = 'ucafe:F. char ch = 'u10100'5下列程序中哪些【代碼】是錯誤的?public class E p

9、ublic static void main(String args) int x = 8;byte b = 127;/b = x; /x = 12L;/long y=8.0;/float z=6.89 ;/6 .對于 int a = new int3A. a.length 的值是 3。B. a1的值是1。C. a0的值是0。2345【代碼1】【代碼2】【代碼3】【代碼4】【代碼5】F列哪個敘述是錯誤的? bD. aa.length-1的值等于 a2的值。1. C。2. ADF。3. B。4. BE。5.【代碼2】【代碼3】【代碼4】【代碼5】。6. B。三、閱讀或調(diào)試程序1. 屬于操作題,解

10、答略。2. 屬于操作題,解答略。3. 屬于操作題,解答略。4. 下列程序標注的【代碼 1】,【代碼2】的輸出結(jié)果是什么?public class E public static void main (String args )Ion g a = 1,2,3,4;Ion g b = 100,200,300,400,500;b = a;System.out.println(” 數(shù)組 b 的長度:"+b.length); /【代碼 1 】System.out.println("b0="+b0); /【代碼 2】5. 下列程序標注的【代碼 1】,【代碼2】的輸出結(jié)果是什么

11、?public class E public static void main(String args) in t a=10,20,30,40,b=1,2,4,5,6,7;b0 = a;b01 = b13;System.out.println(b03); / 【代碼 1 】System.out.println(a1);/【代碼 2】4. 【代碼1】:4。【代碼2】:b0=1。5. 【代碼1】:40?!敬a2】:7四、編寫程序1 .編寫一個應用程序,給出漢字你、我、他在Unicode 表中的位置。2 編寫一個Java應用程序,輸出全部的希臘字母。1. public class E public

12、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=' a ',cEnd=' 3 'for(char c=cStart;c<=cEnd;c+)System.out.print(” "+c);

13、習題3 (第3章)一、問答題1關(guān)系運算符的運算結(jié)果是怎樣的數(shù)據(jù)類型?2. if語句中的條件表達式的值是否可以是int型?3. while語句中的條件表達式的值是什么類型?4. switch語句中必須有 default選項碼?5. 在while語句的循環(huán)體中,執(zhí)行break語句的效果是什么?6. 可以用for語句代替 while語句的作用嗎?1. boolean2. 不可以3. boolean4. 不是必須的5. 結(jié)束while語句的執(zhí)行6. 可以二、選擇題1. 下列哪個敘述是正確的?aA. 5.0/2+10的結(jié)果是double型數(shù)據(jù)。B. (int)5.8+1.0的結(jié)果是int型數(shù)據(jù)。C. 蘋

14、'+ '果啲結(jié)果是char型數(shù)據(jù)。D. (short)10+'a'的結(jié)果是short型數(shù)據(jù)。2. 用下列哪個代碼替換程序標注的【代碼】會導致編譯錯誤?cA . m->0 B. m+>0 C. m = 0 D. m>100&&true public class E public static void main (String args ) int m=10, n=0;while(【代碼】)n+;3假設(shè)有int x=1;以下哪個代碼導致“可能損失精度,找到int需要char”這樣的編譯錯誤。cA short t=12+'a

15、: B. char c ='a'+1C. char m ='a'+x; D. byte n ='a'+1;1 A。2. Co三、閱讀程序1 下列程序的輸出結(jié)果是什么?public class E public static void main (Stri ng args )char x='你',y='e',z='吃'if(x>'A')y='蘋';z='果';elsey='酸'z='甜:System.out.pri ntln

16、 (x+","+y+","+z);2下列程序的輸出結(jié)果是什么?public class E public static void main (String args ) char c = '0:for(i nt i=1;i<=4;i+) switch(i) case 1: c = 'J'System.out.pri nt(c);case 2: c = 'e'System.out.pri nt(c); break;case 3: c = 'p'System.out.pri nt(c); defa

17、ult: System.out.print("好"); 3. 下列程序的輸出結(jié)果是什么?public class E public static void main (Stri ng args) int x = 1,y = 6;while (y->0) x-;System.out.pri nt("x="+x+",y="+y);x=0,y=5x=-1,y=4x=_2,y=3x=_3,y=2x=-4,y=1x=-5,y=0x=-5,y=-11你,蘋,甜2. Jeep好好3. x=-5,y=-1四、編程序題1. 編寫應用程序求1!+2

18、!+10!。2. 編寫一個應用程序求100以內(nèi)的全部素數(shù)。3. 分別用do-while和for循環(huán)計算1+1/2!+1/3!+1/4! 的前20項和。4. 一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。編寫應用程序求1000之內(nèi)的所有完數(shù)。5. 編寫應用程序,使用for循環(huán)語句計算 8+88+888前10項之和。6. 編寫應用程序,輸出滿足1+2+3+n<8888的最大正整數(shù)n。1. public class Xiti1 public static void main(String args) double sum=0,a=1;int i=1;while(i<=20) su

19、m=sum+a;i+;a=a*i; System.out.println("sum="+sum);2. public 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=O)break;if(i>j/2) System.out.print(” "+j);3. class Xiti3 public static void main(String args) double sum=0,a=1,i=1;

20、do sum=sum+a;i+;a=(1.0/i)*a;while(i<=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);4. public class Xiti4 public static void main(String args) int sum=0,i,j;for(i=1;i<=1000;i+)

21、for(j=1,sum=0;j<i;j+) if(i%j=0)sum=sum+j;if(sum=i)System.out.println(” 完數(shù):"+i);5. public 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;12. this關(guān)鍵字代表什么?this可以出現(xiàn)在類方法中嗎?System.out.println(sum);6. public class Xiti6

22、public static void main(String args) int n=1;long sum=0;while(true) sum=sum+n;n+;if(sum>=8888)break;System.out.println(” 滿足條件的最大整數(shù):"+(n-1);習題4 (第4章)一、問答題1. 面向?qū)ο笳Z言有哪三個特性?2. 類名應當遵守怎樣的編程風格?3. 變量和方法的名字應當遵守怎樣的編程風格?4. 類體內(nèi)容中聲明成員變量是為了體現(xiàn)對象的屬性還是行為?5. 類體內(nèi)容中定義的非構(gòu)造方法是為了體現(xiàn)對象的屬性還是行為? 6. 什么時候使用構(gòu)造方法?構(gòu)造方法有類型嗎

23、?7. 類中的實例變量在什么時候會被分配內(nèi)存空間?&什么叫方法的重載?構(gòu)造方法可以重載嗎?9. 類中的實例方法可以操作類變量( static變量)嗎?類方法(static方法)可以操作實例 變量嗎?可以。不可以。10. 類中的實例方法可以用類名直接調(diào)用嗎?& 一個類中可以有多個方法具有相同的名字,但這些方法的參數(shù)必須不同,即或者是參 數(shù)的個數(shù)不同,或者是參數(shù)的類型不同。可以。9.10. 不可以。11. 簡述類變量和實例變量的區(qū)別。1. 封裝、繼承和多態(tài)。2. 當類名由幾個單詞復合而成時,每個單詞的首字母使用大寫。3. 名字的首單詞的首字母使用小寫,如果變量的名字由多個單詞組成,

24、從第2個單詞開 始的其它單詞的首字母使用大寫。4. 屬性5. 行為6. 用類創(chuàng)建對象時。沒有類型7. 用類創(chuàng)建對象時。& 一個類中可以有多個方法具有相同的名字,但這些方法的參數(shù)必須不同,即或者是參 數(shù)的個數(shù)不同,或者是參數(shù)的類型不同。可以。9. 可以。不可以。10. 不可以。11. 一個類通過使用new運算符可以創(chuàng)建多個不同的對象,不同的對象的實例變量將被分 配不同的內(nèi)存空間。所有對象的類變量都分配給相同的一處內(nèi)存,對象共享類變量。12. 代表調(diào)用當前方法的對象。不可以。二、選擇題1 .下列哪個敘述是正確的?bA. Java應用程序由若干個類所構(gòu)成,這些類必須在一個源文件中。B. Ja

25、va應用程序由若干個類所構(gòu)成,這些類可以在一個源文件中,也可以分布在若 干個源文件中,其中必須有一個源文件含有主類。C. Java源文件必須含有主類。D. Java源文件如果含有主類,主類必須是public類。2. 下列哪個敘述是正確的?dA. 成員變量的名字不可以和局部變量的相同。B. 方法的參數(shù)的名字可以和方法中聲明的局部變量的名字相同。C. 成員變量沒有默認值。D. 局部變量沒有默認值。3. 對于下列 Hello類,哪個敘述是正確的?dA. Hello類有2個構(gòu)造方法。B. Hello類的int Hello()方法是錯誤的方法。C. Hello類沒有構(gòu)造方法。D. Hello無法通過編譯

26、,因為其中的hello方法的方法頭是錯誤的(沒有類型)class Hello Hello(int m)int Hello() return 20;hello() 4對于下列Dog類,哪個敘述是錯誤的?dA. Dog(int m)與Dog(double m)互為重載的構(gòu)造方法。B. int Dog(int m)與void Dog(double m)互為重載的非構(gòu)造方法。C. Dog類只有兩個構(gòu)造方法,而且沒有無參數(shù)的構(gòu)造方法。D. Dog類有3個構(gòu)造方法。class Dog Dog(int m)Dog(double m)int Dog(int m) return 23;void Dog(doub

27、le m)構(gòu)造方法是一種特殊的方法,與一般的方法不同是:1. 構(gòu)造方法的名字必須與定義他的類名完全相同,沒有返回類型,甚至連void也沒有。2. 構(gòu)造方法的調(diào)用是在創(chuàng)建一個對象時使用new操作進行的。構(gòu)造方法的作用是初始化對象。3. 不能被 static、final、synchronized 、abstract 禾口 native 修飾。構(gòu)造方法不能被 子類繼承。5. 下列哪些類聲明是錯誤的?cdA) class AB) public class AC) protected class AD) private class A6. 下列A類中【代碼1】【代碼5】哪些是錯誤的?1 4class T

28、om private int x = 120;protected int y = 20;int z = 11; private void f() x = 200; System.out.println(x);void g() x = 200; System.out.println(x);public class A public static void main(String args) Tom tom = new Tom(); tom.x = 22; / 【代碼 1】 tom.y = 33; / 【代碼 2】 tom.z = 55; / 【代碼 3 】 tom.f(); /【代碼 4】 to

29、m.g(); / 【代碼 5】7下列 E 類的類體中哪些【代碼】是錯誤的。 4class E int x;/ 【代碼 1】long y = x;/ 【代碼 2】public void f(int n) int m;/ 【代碼 3】int t = n+m;/ 【代碼 4 】1. Bo 2. Db 3. Do 4. Db 5. CD 6.【代碼1】【代碼4】。7 .【代碼4】。三、閱讀程序1說出下列E類中【代碼1】【代碼3】的輸出結(jié)果。 class Fish int weight = 1;class Lake Fish fish;void setFish(Fish s)fish = s;void

30、foodFish(int m) fish.weight=fish.weight+m;public class E 代碼 1】代碼 2】【代碼 3】public static void main(String args) Fish redFish = new Fish(); System.out.println(redFish.weight); / Lake lake = new Lake(); lake.setFish(redFish); lake.foodFish(120);System.out.println(redFish.weight); / System.out.println(la

31、ke.fish.weight); /2請說出 A 類中 System.out.println 的輸出結(jié)果。 class B int x = 100,y = 200; public void setX(int x) x = x;public void setY(int y) this.y = y;public int getXYSum() return x+y;public class A public static void main(String args) B b = new B();b.setX(-100);b.setY(-200);System.out.println("su

32、m="+b.getXYSum();3請說出 A 類中 System.out.println 的輸出結(jié)果。class B int n;static int sum=0;void setN(int n) this.n=n;int getSum() for(int i=1;i<=n;i+) sum=sum+i;return sum;public class A public static void main(String args) B b1=new B(),b2=new B();b1.setN(3);b2.setN(5);int s1=b1.getSum();int s2=b2.g

33、etSum();System.out.println(s1+s2);4請說出E類中【代碼1】,【代碼2】的輸出結(jié)果n的輸出結(jié)果。 class A double f(int x,double y) return x+y;int f(int x,int y) return x*y;public class E public static void main(String args) A a=new A();System.out.println(a.f(10,10); /【代碼 1】System.out.println(a.f(10,10.0); /【代碼 2】5. 上機實習下列程序,了解可變參數(shù)。

34、public class E public static void main(String args) 給參數(shù)傳值時,實參的個數(shù)很靈活f(1,2); f(-1,-2,-3,-4); / f(9,7,6);public static void f(int . x) /x數(shù)for(i nt i=0;i<x .len gth;i+) /x.len gthSystem.out.pri ntln (xi); /xi是可變參數(shù)的代表,代表若干個 int型參是x代表的參數(shù)的個數(shù)是x代表的第i個參數(shù)(類似數(shù)組)6類的字節(jié)碼進入內(nèi)存時,類中的靜態(tài)塊會立刻被執(zhí)行。實習下列程序,了解靜態(tài)塊。class AAA

35、 我是AAA中的靜態(tài)塊rj;我是最先被執(zhí)行的靜態(tài)塊!");static / 靜態(tài)塊System.out.pri ntl n("public class E static / 靜態(tài)塊System.out.pri ntl n("public static void main(String args) AAA a= new AAA(); /AAA的字節(jié)碼進入內(nèi)存System.out.println(”我在了解靜態(tài)(static)塊");1 代碼1】:1,【代碼2】:121,【代碼3】:121。2 sum=-100。3. 27。4 .【代碼1】:100,【代碼2

36、】:20.0。5. 上機實習題目,解答略。6. 上機實習題目,解答略。四、編程題用類描述計算機中 CPU的速度和硬盤的容量。要求Java應用程序有4個類,名字分別是PC,CPU和HardDisk和Test,其中Test是主類。PC類與CPU和HardDisk類關(guān)聯(lián)的 UML圖(圖4.33)主類Test的要求 main方法中創(chuàng)建一個 main方法中創(chuàng)建一個其中,CPU類要求getSpeed()返回speed的值;要求 setSpeed(int m)方法將參數(shù) m的 值賦值給 speed HardDisk 類要求 getAmount()返回 amount 的值,要求 setAmount(int m

37、)方 法將參數(shù) m的值賦值給amount。PC類要求setCUP(CPU c)將參數(shù)c的值賦值給cpu,要 求setHardDisk (HardDisk h)方法將參數(shù) h的值賦值給 HD,要求show()方法能顯示 cpu的 速度和硬盤的容量。CPU對象cpu, cpu將自己的speed設(shè)置為2200, HardDisk對象disk,disk將自己的amount設(shè)置為200,main方法中創(chuàng)建一個 PC對象pc,pc調(diào)用setCUP(CPU c)方法,調(diào)用時實參是 cpu, pc調(diào)用setHardDisk (HardDisk h)方法,調(diào)用時實參是 disk, pc調(diào)用show()方法。CP

38、Uspeed:int setSpeed(int):void getSpeed():intHardDiskamount:int setAmount(int):void getAmount():int圖 4.33 PC 與 CPU 和 HardDisk 關(guān)聯(lián) UML 圖CPU.javapublic class CPU int speed;int getSpeed() return speed;public void setSpeed(int speed) this.speed = speed;HardDisk.javapublic class HardDisk int amount;int get

39、Amount() return amount; public void setAmount(int amount) this.amount = amount; PC.java public class PC CPU cpu; HardDisk HD; void setCPU(CPU cpu) this.cpu = cpu; void setHardDisk(HardDisk HD) this.HD = HD; void show() System.out.println("CPU 速度 :"+cpu.getSpeed(); System.out.println("

40、 硬盤容量 :"+HD.getAmount(); Test.java public class Test public static void main(String args) CPU cpu = new CPU(); HardDisk HD=new HardDisk(); cpu.setSpeed(2200); HD.setAmount(200); PC pc =new PC(); pc.setCPU(cpu); pc.setHardDisk(HD); pc.show(); 習題 5(第 5 章)一、問答題1子類可以有多個父類嗎?2 java.lang 包中的 Object 類是

41、所有其他類的祖先類嗎? 3如果子類和父類不在同一個包中,子類是否繼承父類的友好成員? 4子類怎樣隱藏繼承的成員變量?5子類重寫方法的規(guī)則是怎樣的?重寫方法的目的是什么?6父類的final方法可以被子類重寫嗎?7. 什么類中可以有 abstract方法?&對象的上轉(zhuǎn)型對象有怎樣的特點?9一個類的各個子類是怎樣體現(xiàn)多態(tài)的?10.面向抽象編程的目的和核心是什么?1.不可以。2 .是。3. 不繼承。4. 聲明與父類同名的成員變量。5 .子類重寫的方法類型和父類的方法的類型一致或者是父類的方法的類型的子類型,重 寫的方法的名字、參數(shù)個數(shù)、參數(shù)的類型和父類的方法完全相同。重寫方法的目的是隱藏 繼承

42、的方法,子類通過方法的重寫可以把父類的狀態(tài)和行為改變?yōu)樽陨淼臓顟B(tài)和行為。6. 不可以。7. abstract類。&上轉(zhuǎn)型對象不能操作子類新增的成員變量,不能調(diào)用子類新增的方法。上轉(zhuǎn)型對象可 以訪問子類繼承或隱藏的成員變量,可以調(diào)用子類繼承的方法或子類重寫的實例方法。9. 通過重寫方法。10. 面向抽象編程目的是為了應對用戶需求的變化,核心是讓類中每種可能的變化對應地 交給抽象類的一個子類類去負責,從而讓該類的設(shè)計者不去關(guān)心具體實現(xiàn)。二、選擇題1. 下列哪個敘述是正確的?cE. 子類繼承父類的構(gòu)造方法。F. abstract類的子類必須是非abstract類。G. 子類繼承的方法只能操作

43、子類繼承和隱藏的成員變量。H. 子類重寫或新增的方法也能直接操作被子類隱藏的成員變量。2. 下列哪個敘述是正確的?dA. final類可以有子類。B. abstract類中只可以有 abstract方法。C. abstract類中可以有非 abstract方法,但該方法不可以用final修飾。D. 不可以同時用final和abstract修飾同一個方法。E. 允許使用 static修飾abstract方法。用final修飾的類是不允許被繼承的,A錯誤abstract類中也可以有普通成員方法,B錯誤finalabstract類中的非abstract方法是可以用final修飾的,而 abstrac

44、t方法是不可以被修飾的,C錯誤D同上,所以正確不允許使用 static修飾abstract方法,E錯誤。3 下列程序中注釋的哪兩個代碼( A , B, C, D )是錯誤的(無法通過編譯)?cdclass Father private int money =12;float height;int seeMoney()return money ;/Aclass Son extends Father int height;int lookMoney() int m = seeMoney();Breturn m;class E public static void main(String args)

45、 Son erzi = new Son();erzi.money = 300;/Cerzi.height = 1.78F;D4 假設(shè)C是B的子類,B是A的子類,cat是C類的一個對象,bird是B類的一個對象,下列哪個敘述是錯誤的?dE. cat instanceof B 的值是 true。F. bird instanceof A 的值是 true。G. cat instanceof A 的值是 true。H. bird instanceof C 的值是 true。5下列程序中注釋的哪個代碼(A , B , C, D)是錯誤的(無法通過編譯)?bclass A static int m;sta

46、tic void f()m = 20 ;/Aclass B extends A void f()B m = 222 ;/Cclass E public static void main(String args) A. f();/ D6.下列代碼中標注的(A,B,C,D )中,哪一個是錯誤的?babstract class Takecare protected void speakHello() /Apublic abstract static void cry();Bstatic int f() return 0 ;Cabstract float g();D7下列程序中注釋的哪個代碼( A ,

47、 B , C, D)是錯誤的(無法通過編譯)?dabstract class A abstract float getFloat ();/Avoid f()B public class B extends A private float m = 1.0f;/Cprivate float getFloat ()/D return m;&將下列哪個代碼(A,B,C,D)放入程序中標注的【代碼】處將導致編譯錯誤?bA. public float getNum()return 4.0f;B. public void getNum() C. public void getNum(double d

48、) D. public double getNum(float d)return 4.0d;class A public float getNum() return 3.0f;public class B extends A 【代碼】A. 程序提示編譯錯誤(原因是 A 類沒有不帶參數(shù)的構(gòu)造方法)B. 編譯無錯誤, 【代碼】輸出結(jié)果是0。C. 編譯無錯誤, 【代碼】輸出結(jié)果是1。D. 編譯無錯誤, 【代碼】輸出結(jié)果是2。class A public int i=0; A(int m) i = 1;public class B extends A B(int m) i = 2;public sta

49、tic void main(String args) B b = new B(100); System.out.println(b.i); / 【代碼】1. C。 2. D。 3. CD。 4. D。 5. B。 6. B。 7. D。 8. B。 9. A。三、閱讀程序1 .請說出 E 類中【代碼 1 】,【代碼 2】的輸出結(jié)果。 class A double f(double x,double y) return x+y;class B extends A double f(int x,int y) return x*y;public class E public static void

50、main(String args) B b=new B();System.out.println(b.f(3,5);/ 【代碼 1】System.out.println(b.f(3.0,5.0);/ 【代碼 2】2說出下列B類中【代碼1】,【代碼2】的輸出結(jié)果。class A public int getNumber(int a) return a+1;class B extends A public int getNumber (int a) return a+100;public static void main (String args) A a =new A();System.out.

51、println(a.getNumber(10); /【代碼 1 a = new B();System.out.println(a.getNumber(10); /【代碼 23請說出E類中【代碼1 【代碼4的輸出結(jié)果。class A double f(double x,double y) return x+y;static int g(int n) return n*n;class B extends A double f(double x,double y) double m = super.f(x,y);return m+x*y;static int g(int n) int m = A.g

52、(n);return m+n;public class E public static void main(String args) B b = new B();System.out.println(b.f(10.0,8.0);/【代碼1System.out.println(b.g(3);/【代碼2A a = new B();System.out.println(a.f(10.0,8.0);/【代碼3System.out.println(a.g(3);/【代碼4】4請說出E類中【代碼1】【代碼3】的輸出結(jié)果。class A int m;int getM() return m;int seeM(

53、) return m;class B extends A int m ;int getM() return m+100;public class E public static void main(String args) B b = new B();b.m = 20;System.out.println(b.getM(); /【代碼 1A a = b;a.m = -100;/上轉(zhuǎn)型對象訪問的是被隱藏的mSystem.out.println(a.getM(); /【代碼2】上轉(zhuǎn)型對象調(diào)用的一定是子類重寫的getM()方法System.out.println(b.seeM(); /【代碼3】子類繼承的seeM()方法操作的 m是被子類隱藏的m1.2.3.4.【代碼1:15.0?!敬a2:8.0?!敬a1:1

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論