java程序設(shè)計之網(wǎng)絡(luò)編程第二版課后習(xí)題答案_第1頁
java程序設(shè)計之網(wǎng)絡(luò)編程第二版課后習(xí)題答案_第2頁
java程序設(shè)計之網(wǎng)絡(luò)編程第二版課后習(xí)題答案_第3頁
java程序設(shè)計之網(wǎng)絡(luò)編程第二版課后習(xí)題答案_第4頁
java程序設(shè)計之網(wǎng)絡(luò)編程第二版課后習(xí)題答案_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章 習(xí)題及思考題1、 Java程序是由什么組成的?一個程序中必須有public類嗎?Java源文件的命名規(guī)則是怎樣的?答:一個Java源程序是由若干個類組成。一個Java程序不一定需要有public類:如果源文件中有多個類時,則只能有一個類是public類;如果源文件中只有一個類,則不將該類寫成public也將默認(rèn)它為主類。源文件命名時要求源文件主名應(yīng)與主類(即用public修飾的類)的類名相同,擴展名為.java。如果沒有定義public類,則可以任何一個類名為主文件名,當(dāng)然這是不主張的,因為它將無法進行被繼承使用。另外,對Applet小應(yīng)用程序來說,其主類必須為public,否則雖然在

2、一些編譯編譯平臺下可以通過(在BlueJ下無法通過)但運行時無法顯示結(jié)果。 2、怎樣區(qū)分應(yīng)用程序和小應(yīng)用程序?應(yīng)用程序的主類和小應(yīng)用程序的主類必須用public修飾嗎?答:Java Application是完整的程序,需要獨立的解釋器來解釋運行;而Java Applet則是嵌在HTML編寫的Web頁面中的非獨立運行程序,由Web瀏覽器內(nèi)部包含的Java解釋器來解釋運行。在源程序代碼中兩者的主要區(qū)別是:任何一個Java Application應(yīng)用程序必須有且只有一個main方法,它是整個程序的入口方法;任何一個Applet小應(yīng)用程序要求程序中有且必須有一個類是系統(tǒng)類Applet的子類,即該類頭部

3、分以extends Applet結(jié)尾。應(yīng)用程序的主類當(dāng)源文件中只有一個類時不必用public修飾,但當(dāng)有多于一個類時則主類必須用public修飾。小應(yīng)用程序的主類在任何時候都需要用public來修飾。3、開發(fā)與運行Java程序需要經(jīng)過哪些主要步驟和過程?答:主要有三個步驟(1)、用文字編輯器notepad(或在Jcreator,Gel, BuleJ,Eclipse, Jbuilder等)編寫源文件; (2)、使用Java編譯器(如Javac.exe)將.java源文件編譯成字節(jié)碼文件.class; (3)、運行Java程序:對應(yīng)用程序應(yīng)通過Java解釋器(如java.exe)來運行,而對小應(yīng)用

4、程序應(yīng)通過支持Java標(biāo)準(zhǔn)的瀏覽器(如Microsoft Explorer)來解釋運行。4、安裝JDK之后如何設(shè)置JDK系統(tǒng)的PATH,CLASSPATH?他們的作用是什么?答、更新系統(tǒng)PATH的方法隨Windows版本不同而不同。對于Windows 95/98,可以將下列項目作為C:autoexec.bat文件的最后一行:SET PATH = C:j2sdk1.4.2bin;%PATH%當(dāng)程序需要第三方的類庫支持, 而且比較常用, 就可以采用此種方法.比如常用的數(shù)據(jù)庫驅(qū)動程序, 寫 servlet 需要的 servlet 包等等. 設(shè)置方法就是在環(huán)境變量中加入 CLASSPATH. 然后就可

5、以直接編譯運行了.Java運行環(huán)境從CLASSPATH環(huán)境變量中尋找要執(zhí)行的用戶項目(三方的類庫)??梢园慈缦碌姆绞皆O(shè)置SET CLASSPATH=.;C:J2SDK1.4.2jrelibjaws.jar;%CLASSPATH%通常我們要從當(dāng)前目錄中尋找用戶類,因為開發(fā)的程序相關(guān)的類放在這里,. 表示當(dāng)前工作目錄. 5、Java語言特點是什么?答:Java是一種簡單的面象對象的分布式的解釋的健壯的安全的結(jié)構(gòu)中立的可移植的性能很優(yōu)異的多線程的動態(tài)的語言。6、簡述面向過程問題求解和面向?qū)ο髥栴}求解的異同。試列舉出面向?qū)ο蠛兔嫦蜻^程的編程語言各兩種。解:面向過程問題求解利用計算機能夠理解的離散邏輯來

6、描述和表達所求解的問題本身以及具體問題解決的過程,它的核心是算法和數(shù)據(jù)結(jié)構(gòu),面向?qū)ο蟮膯栴}求解則利用符合人們?nèi)粘K季S習(xí)慣的方式去模擬所求解的問題,模擬它的構(gòu)成、特征和各種動態(tài)行為,從而得到問題的解答。它的核心是類、對象和設(shè)計模式。常見的面向過程的編程語言有BASIC,F(xiàn)ORTRAN,Pascal, C等。常見的面向?qū)ο蟮木幊陶Z言有Smalltalk-80,Object Pascal, C+, Java等。第二章 習(xí)題及思考題 1.試分析基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的基本特點?答:Java的基本數(shù)據(jù)類型都有固定的數(shù)據(jù)位,不隨運行平臺的變化而變化。引用類型都是用類或?qū)ο髮崿F(xiàn)的2.請使用異或運算符,

7、實現(xiàn)兩個整數(shù)的交換。 答:int x=5,y=19; x=xy; y=yx; x=xy;3.下列哪個是合法的標(biāo)識符:( )。A、a=bB、_HelloC、2ndD、Chong qing 答:B4.下列哪些是合法的標(biāo)識符()。 A、newB、classC、intD、const2 答:D5.如果定義有變量double d1, d2=4.0則下列說法正確的是:A、變量d1,d2均初始化為4.0B、變量d1沒有初始化,d2初始化為4.0C、變量d1,d2均未初始化D、變量d2沒有初始化,d1初始化為4.0答:B6.判斷題:所有的變量在使用前都必須進行初始化。( ) 答:正確。7.內(nèi)部數(shù)據(jù)類型byte的

8、取值范圍是:( ) A、065, 535B、(-128)127C、(-32,768)32,767D、(-256)255答:B8.下列哪些是不能通過編譯的語句:( ) A、int i = 32;B、float f = 45.0;C、double d = 45.0;D、char a=c;答: B9.判斷題:Java中數(shù)據(jù)類型的長度與具體使用的機器相關(guān)。( ) 答:錯誤。10.如果定義有double x;float y;int m,則表達式x*y-m的類型為( ):A、doubleB、floatC、intD、short答:A11.如果定義有short s;byte b;char c,則表達式s*b+

9、c的類型為( ):A、charB、shortC、intD、byte答:C12.已知int i= 2147483647; +i; 則i的值等于多少( ) A -2147483648 B 2147483647 C 2147483648 答:A13.已知byte i= 127; +i; 則i的值等于多少( ) A -128 B 127 C 128 答:A14.已知byte i= 127; i=i+1;這兩行語句能否編譯成功?( ) 答:編譯不成功。15.執(zhí)行以下程序段int a=5,b; b=+a*3后b的值為:( )A、17B、18C、16D、15答: B16.如果x=3,y=5,則表達式x|y的

10、值為:( )A、15B、8C、1D、7答:D17.如果int a=3,b=2,則執(zhí)行a*=b+8后a的值為:( )A、20B、14C、30D、16答:C18.若所用變量都已正確定義,以下選項中,非法的表達式是:( )A、a!=4|b=1B、a%3C、a=1/2D、A+32答:C19.設(shè)有定義語句int a=1,1,2; 則以下對此語句的敘述錯誤的是( )。 A、定義了一個名為a的一維數(shù)組 B、a數(shù)組有3個元素 C、a數(shù)組的下標(biāo)為13 D、數(shù)組中的每個元素是整型答:C20.以下數(shù)組初始化形式正確的是:( ) A、int t1=1,2,3,4,5,6 B、int t2=1,2,3,4,5,6 C、

11、int t332=1,2,3,4,5,6 D、int t4;t4=1,2,3,4,5,6答:A第三章 習(xí)題及思考題1、編寫一個程序,用選擇法對數(shù)組a=20,10,55,40,30,70,60,80,90,100進行從大到小的排序解: public class ArraySortpublic static void main(String args)int array=20,10,55,40,30,70,60,80,90,100;int i,j,k,t;int m=array.length;for(i=0;im-1;i+)k=i;for(j=i+1;jm;j+)if(arrayjarrayk)

12、k=j;t=arrayk;arrayk=arrayi;arrayi=t;for(i=0;iarray.length;i+)System.out.println(array+i+=+arrayi);2、求兩個整數(shù)的最大公約數(shù)解public class Gcd_do public static void main(String args) int a=45,b=21,k=0; System.out.print(Gcd(+a+,+b+)=); do k = a % b; a = b; b = k; while (k!=0); System.out.println(a); 3、請打印出如下九九乘法表*

13、 | 1 2 3 4 5 6 7 8 9-|- 1 | 1 2 | 2 4 3 | 3 6 9 4 | 4 8 12 16 5 | 5 10 15 20 25 6 | 6 12 18 24 30 36 7 | 7 14 21 28 35 42 49 8 | 8 16 24 32 40 48 56 64 9 | 9 18 27 36 45 54 63 72 81解:public class MultiTable public static void main(String args) int i,j,n=9; System.out.print( * |); for (i=1;i=n;i+) Sy

14、stem.out.print( +i); System.out.print(n-|); for (i=1;i=n;i+) System.out.print(-); System.out.println(); for (i=1;i=n;i+) System.out.print( +i+ |); for (j=1;j=0?disc:-disc; p2=Math.sqrt(absdisc)/(2.0*a); if(disc0.0) System.out.println(Complex roots:+p1+or-+p2+i); else x1=p1+p2; x2=p1-p2; System.out.p

15、rintln(First Real roots:+x1); System.out.println(Second real roots:+x2); / endfor 5、求前40個Fibonacci數(shù)列。 Fibonacci數(shù)列:1,1,2,3,5,8,13,21,34, 從數(shù)列看到:F1=1 (n=1) F2=1 (n=2) Fn=Fn-1+Fn-2 (n3) 解:public class Fibonacci public static void main(String args) long f1,f2; int i; f1=1; f2=1; System.out.println (f1+ +

16、f2); for (i=3;i=20;i+) f1=f1+f2; f2=f1+f2; System.out.println (f1+ +f2); 6、已知公雞5元1只,母雞3元一只,小雞1元3只,要求用100元剛好買100只雞,問有多少種采購方案。解:public class Loop_Loop3_20 public static void main(String args) int I,J,K; System.out.println( I J K ); for (I=0;I=20;I+ ) / I 為公雞數(shù) for ( J=0;J0) str=args0; System.out.printl

17、n(str=+str); n=str.length(); char ch1,ch2; String temp=; for (i=0;in;i+) sub1=str.substring(i,i+1); temp=sub1+temp; System.out.println(temp=+temp); System.out.println(str+“ :”+str.equals(temp); 8、求2-1000內(nèi)的所有素數(shù)class prime public static void main(String args) int sum=0,i,j; for( j=2;j=1000;j+) /求50以內(nèi)的

18、素數(shù) for( i=2;ij/2) System.out.println(+j+是素數(shù)); 9、在一個循環(huán)中使用break,continue和return有什么不同?解:在循環(huán)中使用break語句,將使循環(huán)終止,流程從break語句處跳轉(zhuǎn)到break語句所在的循環(huán)外面的第一個語句繼續(xù)執(zhí)行。在循環(huán)中使用continue語句,將提前結(jié)束本輪循環(huán),流程跳轉(zhuǎn)到continue語句所在循環(huán)的第一個語句繼續(xù)執(zhí)行。在循環(huán)中使用return語句,將終止當(dāng)前方法調(diào)用,同時終止循環(huán),使流程返回到調(diào)用語句的下一個語句執(zhí)行。10、結(jié)構(gòu)化程序設(shè)計有哪三種流程?他們分別對應(yīng)Java中那些語句解:結(jié)構(gòu)化程序設(shè)計有三種基本流

19、程:循環(huán)、分支和順序。Java程序中的分支語句包含if語句、switch語句;循環(huán)語句包括了while語句,do-while語句、for語句;其他語句如變量、對象定義、賦值語句、方法調(diào)用語句、以及上面的循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)等按照上下文排列都是順序語句。第四章 習(xí)題及思考題1.什么是類?什么是對象?對象和類是什么關(guān)系?答:類是抽取了同類對象的共同屬性和行為形成的對象或?qū)嶓w的“模板”。 對象是現(xiàn)實世界中實體的描述,是其自身所具有的狀態(tài)特征及可以對這些狀態(tài)施加的操作結(jié)合在一起所構(gòu)成的獨立實體。類和對象之間的關(guān)系是抽象和具體的關(guān)系:類表達的是一種抽象的概念,它描述了該類對象的共同特征;而對象是具體事物,

20、以類為模板來生成,它具有自己的狀態(tài)。舉例:類與對象的關(guān)系猶如零件的圖紙與按圖紙制造出的零件關(guān)系一樣;圖紙(類)描述了零件(對象)的共同特征,每個零件(對象)又有自己的個性,如加工精度的不同等等2、 什么是方法?方法的結(jié)構(gòu)是怎樣的?設(shè)計方法應(yīng)考慮哪些因素?答:方法是Java類的一個組成部分,通過類的方法改變對象的狀態(tài)。 方法的結(jié)構(gòu):方法修飾符 返回值類型 方法名(形參列表)throws異常列表 方法體; 設(shè)計方法應(yīng)考慮因素有:(1) 方法名是Java中任意的標(biāo)識符,按照命名的約定,方法名應(yīng)該是有意義的動詞或動詞短語,它的第一個字母一般要小寫,其他有意義的單詞的首字母要大寫,其余字母小寫。 (2)

21、 返回值類型可以是任意的Java類型,甚至可以是定義此方法的類。如果方法沒有返回值,則用void表示。 (3) 形式參數(shù)列表是可選的。如果方法沒有形式參數(shù),就用一對小括號“()”表示。形式參數(shù)列表的形式如下: (類型 形參名,類型 形參名,) (4) throws異常列表規(guī)定了在方法執(zhí)行中可能導(dǎo)致的異常。3.創(chuàng)建一個有兩個方法的類,其中第一個方法兩次調(diào)用第二個方法,第一次不使用this,第二個使用this。 class Rectangle /矩形類 int width; / 矩形的寬 int usethis(int width) /返回寬度的函數(shù) this. width= width; /指自

22、己這個對象 return width; int unusethis(int width) int w=width; return w; public static void main(String args) Rectangle r=new Rectangle(); /類對象的實例化 System.out.println(It is about the node of this.); /輸出語句 System.out.println(r.usethis(1); System.out.println(r.unusethis(2); 運行結(jié)果: It is about the node of th

23、is. 1 2 4、創(chuàng)建一個類,該類還有int和char類型的成員變量且未被初始化,然后編程輸出這些成員變量的值,查看java是否執(zhí)行了默認(rèn)的初始化操作。 參考答案:public class CuoShiHua int a; /整型變量 char b; /字符型變量 public void show() /用來輸出未被初始化的變量的 System.out.println(a); System.out.println(b); public static void main(String args) CuoShiHua c = new CuoShiHua(); /聲明類的對象并實例化 c.show

24、(); /函數(shù)調(diào)用 輸出結(jié)果:0 /小方格代表空格 5、創(chuàng)建一個類,該類含有的成員變量和成員方法,創(chuàng)建一個該類的對象,察看當(dāng)時圖訪問這些成員時,編譯程序會給出那些信息(注意:在同一目錄下的類都屬于一個默認(rèn)的包)。 class text1 static int a; /當(dāng)被定義為static類型時,為類變量,可被對象或類調(diào)用 int b; /對象變量,只能被對象調(diào)用 public void display(int a,int b) /成員方法 System.out.println(static int a=+a); System.out.println( int b=+b); public st

25、atic void display(int b) System.out.println(static display: int b=+b); public static void main(String args) text1 tt=new text1(); tt.display(5,6); /text1.display(5,6)是錯誤的:對象變量或?qū)ο蠓椒ㄖ荒鼙粚ο髏t調(diào)用 text1.display(0); /當(dāng)被定義為static類型時,為類方法,可被對象或類調(diào)用 tt.display(23); tt.a=9; text1.a=4; tt.b=3; 運行結(jié)果:static int a=5

26、 int b=6static display: int b=0static display: int b=23 6、下面給出了一個矩形類Rectangle,其中含有多個構(gòu)造方法。上機編譯并運行此程序,觀察運行結(jié)果,體會其中不同構(gòu)造方法的設(shè)計和使用。import java.io.*; class Rectangle /矩形類 private int width; /矩形的寬度 private int length; /矩形的長度 Rectangle() /矩形的不帶參數(shù)的構(gòu)造函數(shù),缺省的給出長(30)和寬(20) length=30;width=20; Rectangle(int l,int w

27、) /矩形的帶參數(shù)的構(gòu)造函數(shù) length=l;width=w; Rectangle(Rectangle r) /此構(gòu)造方法以另一個Rectangle作為參數(shù) width=r.width(); /通過對象調(diào)用函數(shù)并附值給相應(yīng)變量 length=r.length(); int width() /返回寬度 return width; int length() /返回長度 return length; public class CRctngle public static void main (String args ) Rectangle x1=new Rectangle(); /聲明類的對象并實

28、例化 Rectangle x2=new Rectangle(50,40); /聲明類的對象并初始化 Rectangle x3=new Rectangle(x1); System.out.println(x1.length(); System.out.println(x1.width(); System.out.println(x2.length(); System.out.println(x2.width(); System.out.println(x3.length(); System.out.println(x3.width(); 運行結(jié)果:302050403020體會:此程序中共定義了3

29、個構(gòu)造方法:Rectangle()、Rectangle(int l,int w) 、Rectangle(Rectangle r) ,其中Rectangle()是沒有參數(shù)的,Rectangle(int l,int w)以常數(shù)作為參數(shù),Rectangle(Rectangle r)是以對象最為參數(shù)。構(gòu)造函數(shù)的調(diào)用實在用new運算符創(chuàng)建類對象是由系統(tǒng)自動完成的,構(gòu)造函數(shù)的參數(shù)傳遞和形實結(jié)合也是由系統(tǒng)在調(diào)用的同時自動完成。7、下面給出了一個計算階乘的類Fact和使用該類計算階乘的程序Check1。編譯并運行該程序,觀察運行結(jié)果,體會方法的參數(shù)的傳遞和返回值的用法。在調(diào)用時改變參數(shù)的個數(shù)和類型,看看編譯時

30、會得到什么信息。 class Fact float fact (int n) /定義計算n!的方法 int i; float x =1; for(i=1;in;i+) x=x*n; return x; public class Check1 public static void main (String args ) Fact x =new Fact( ); System.out.println(x.fact(10); /計算10! System.out.println(x.fact(15); /計算15! 運行結(jié)果: 1.0E9 2.91929271E168、編譯并運行下面的程序,觀察分析運

31、行結(jié)果,體會程序中super和this的用法,進一步理解變量隱藏和方法重寫的概念。import java.io.*;class SuperClss /定義父類 int x; SuperClss( ) /父類的構(gòu)造方法 x=10; void doClss( ) System.out.println(SuperClss.doClass(); class SubClss extends SuperClss /定義子類 int x; SubClss( ) /子類的構(gòu)造方法 super( ) ; /調(diào)用父類的構(gòu)造方法 x =100; void doClss( ) /重寫父類的doClss方法 Syste

32、m.out.println(SubClss.doClss(); void doDemo( ) /演示super和this的方法 int x; x=1000; super.doClss( ); /調(diào)用父類的doClss方法 doClss( ); /調(diào)用本類的doClss方法 System.out.println(super.x=+super.x); /父類的x System.out.println(this.x=+this.x); /本類的x System.out.println(x=+x); /本方法的x public class SuperDemo public static void ma

33、in(String args ) /主方法 SubClss s = new SubClss(); s.doDemo(); 運行結(jié)果:SuperClss.doClass()SubClss.doClss()super.x=10this.x=100x=1000體會:此程序中定義了一個父類,子類SubClss繼承了父類SuperClss,在主函數(shù)中定義SubClss類對象 s時(即執(zhí)行語句:SubClss s = new SubClss();時 ),自動調(diào)用類SubClss的構(gòu)造函數(shù)SubClss(),再此構(gòu)造函數(shù)中先執(zhí)行“super( ) ;”語句,這樣就調(diào)用類SuperClss的構(gòu)造方法Super

34、Clss( ),因為super來指明超類中的方法。同樣在子類方法doDemo( )中,執(zhí)行語句“super.doClss( );”時,則調(diào)用父類的方法doClss( )。如不用super 來指定的話,則調(diào)用的是子類的方法doClss( ),這里子類SubClss()的成員方法doClss( )重寫了父類SuperClss( )的成員方法doClss( )。 語句 “System.out.println(super.x=+super.x);”中super調(diào)用的是父類SuperClss的變量x,而語句 “System.out.println(this.x=+this.x);”中this調(diào)用的子類S

35、ubClss的變量x, 關(guān)鍵字this和super分別用來指明子類和父類中同名的成員變量。這里父類SuperClss的成員變量x、子類SubClss的成員變量x和類方法doDemo( )中使用的局部變量x三者同名,則要使用關(guān)鍵字this和super來指定所要使用的變量。如不用則輸出的類方法的局部變量,如語句“System.out.println(x=+x);”輸出的就是類方法doDemo()的局部變量。這里子類SubClss()的成員變量x隱藏了父類SuperClss( )的成員變量x。 9、編譯并運行下面的程序,分析運行結(jié)果,體會其中方法重載的用法,進一步理解方法重載的概念。 class F

36、ather /本類中的speak方法重載了兩次 void speak( ) /無參數(shù)的speak方法 System.out.println(I am Father! ); void speak(String s) /有參數(shù)的speak方法 System.out.println(I like+s+. ); public class OverLoadingDemo public static void main (String args ) Father x = new Father( ); x.speak(); /調(diào)用無參的speak方法 x.speak(music) /調(diào)用有參的speak方法

37、 運行結(jié)果: I am Father!I like music.第五章 習(xí)題及思考題1、 什么是繼承?什么是父類?什么是子類?繼承的特性可給面向?qū)ο缶幊處硎裁春锰?什么是單重繼承?什么是多重繼承? 解:繼承是面向?qū)ο蟪绦蛟O(shè)計中兩個類之間的一種關(guān)系。當(dāng)一個類獲取另一個類中所有非私有的數(shù)據(jù)和操作的定義作為它自己的部分或全部成分時,就稱這兩個類之間具有繼承關(guān)系。被繼承的類稱為父類或超類,繼承了父類或超類的所有數(shù)據(jù)和操作的類稱為子類。 面向?qū)ο蟪绦蛟O(shè)計中的繼承,可使得程序結(jié)構(gòu)更加清晰,降低了編碼和維護的工作量。 如果一個類只能有一個父類,則這種繼承關(guān)系稱為單重繼承;如果一個類可以有多個父類,則這種繼

38、承關(guān)系稱為多重繼承。2、 “子類的域和方法的數(shù)目一定大于等于父類的域和方法的數(shù)目”,這種說法是否 正確?為什么? 解:這種說法是錯誤的,因為子類不一定能繼承父類的所有域和方法,它只能繼承所 有非私有的域和方法。如果子類在繼承之外自己定義的域和方法數(shù)目小于父類中私有成 員的數(shù)目,則子類的域和方法的數(shù)目小于父類的域和方法的數(shù)目。3、什么是方法的覆蓋?方法的覆蓋與域的隱藏有何不同?與方法的重載有何不同? 解;子類重新定義父類中已經(jīng)存在的方法,稱為方法的覆蓋。注意:方法覆蓋與域的隱藏不同。子類重新定義父類已有的域,并不能完全取代它從父類那里繼承的同名的域,這個域仍然占用子類的內(nèi)存空間,在某些情況下會被

39、使用;而當(dāng)子類重新定義父類的方法時,從父類那里繼承來的方法將被新方法完全取代,不再在子類的內(nèi)存空間中占一席之地。 與方法的覆蓋不同,重載不是子類對父類同名方法的重新定義,而是在一個類中定義了同名的不同方法。4、 什么是多態(tài)?面向?qū)ο蟪绦蛟O(shè)計為什么要引人多態(tài)的特性?使用多態(tài)有什么優(yōu)點? 解:一個類中存在多個同名的方法,稱為多態(tài)。把抽象功能和目的相同,而具體實現(xiàn)因不同情況而異的方法命名為同名方法,符合面向?qū)ο蟪绦蛟O(shè)計中抽象、提升概念,封裝、隱藏細(xì)節(jié)的特點,從而提高了程序的簡潔性和可讀性,降低了類和程序模塊直接的相互耦合和依賴。5、 父類對象與子類對象相互轉(zhuǎn)化的條件是什么?如何實現(xiàn)它們的相互轉(zhuǎn)化?

40、解:一個子類對象也可以被合法地視為一個父類的對象,即一個父類對象的引用,其指向的內(nèi)存單元可能實際上是一個子類的對象。在這種情況下,可以使用強制類型轉(zhuǎn)換,將父類對象的引用轉(zhuǎn)換成實際的子類對象的引用6、什么是包?它的作用是什么? 解:包是一種松散的類的集合。包的作用主要是把需要協(xié)同工作的不同的類組織在一起,使得程序功能清楚、結(jié)構(gòu)分明。7、 CLASSPATH是有關(guān)什么的環(huán)境變量?它如何影響程序的運行?如何設(shè)置和修改這個環(huán)境變量? 解:CLASSPATH是指定缺省的包文件(字節(jié)碼文件)路徑的環(huán)境變量。如果CLASSPATH設(shè)置得不正確,則程序編譯、運行時可能找不到所需的類的字節(jié)碼文件,從而使程序無法

41、正常運行。 使用如下命令設(shè)置或修改CLASSPATH: SET classpath=,;d:jdk1.5.0libext8、 一個類如何實現(xiàn)接口?實現(xiàn)某接口的類是否一定要重載該接口中的所有抽象方法? 解:使用關(guān)鍵字implements可以定義類實現(xiàn)某接口。實現(xiàn)某接口的類如果不是抽象類,則需要通過重載來實現(xiàn)該接口中的所有抽象方法;如果這個類是抽象類,則它可以不必實現(xiàn)該接口中的所有抽象方法。9、 為某研究所編寫一個通用程序,用來計算每一種交通工具運行1000公里所需的時間,已知每種交通工具的參數(shù)都是3個整數(shù)A、B、C的表達式。現(xiàn)有兩種工具:Car007 和Plane,其中Car007 的速度運算公

42、式為:A*B/C,Plane 的速度運算公式為:A+B+C。需要編寫三類:ComputeTime.java,Plane.java,Car007.java和接口Common.java,要求在未來如果增加第3種交通工具的時候,不必修改以前的任何程序,只需要編寫新的交通工具的程序。其運行過程如下,從命令行輸入ComputeTime的四個參數(shù),第一個是交通工具的類型,第二、三、四個參數(shù)分別時整數(shù)A、B、C,舉例如下: 計算Plane的時間:java ComputeTime Plane 20 30 40 計算Car007的時間:java ComputeTime Car007 23 34 45 如果第3種交通工具為Ship,則只需要編寫Ship.java,運行時輸入:java ComputeTime Ship 22 33 44 提示:充分利用接口的概念,接口對象充當(dāng)參數(shù)

溫馨提示

  • 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

提交評論