JavaEE基礎(chǔ)教程課后習題答案_第1頁
JavaEE基礎(chǔ)教程課后習題答案_第2頁
JavaEE基礎(chǔ)教程課后習題答案_第3頁
JavaEE基礎(chǔ)教程課后習題答案_第4頁
JavaEE基礎(chǔ)教程課后習題答案_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章 Java語言概述與編程環(huán)境1Java語言特點是什么?Java語言具有如下特性:簡單性、面向?qū)ο?、分布式、解釋型、可靠、安全、平臺無關(guān)、可移植、高性能、多線程、動態(tài)性等。2什么叫Java虛擬機?什么叫Java平臺?Java虛擬機與Java平臺的關(guān)系如何?Java虛擬機(Java Virtual Machine) 簡稱JVM 。Java虛擬機是一個想象中的機器,在實際的計算機上通過軟件模擬來實現(xiàn)。Java虛擬機有自己想象中的硬件,如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。3Java程序是由什么組成的?一個程序中必須有public類嗎?Java源文件的命名規(guī)則是怎樣的?一個Java源程

2、序是由若干個類組成。一個Java程序不一定需要有public類:如果源文件中有多個類時,則只能有一個類是public類;如果源文件中只有一個類,則不將該類寫成public也將默認它為主類。源文件命名時要求源文件主名應(yīng)與主類(即用public修飾的類)的類名相同,擴展名為.java。如果沒有定義public類,則可以任何一個類名為主文件名,當然這是不主張的,因為它將無法進行被繼承使用。另外,對Applet小應(yīng)用程序來說,其主類必須為public,否則雖然在一些編譯編譯平臺下可以通過(在BlueJ下無法通過)但運行時無法顯示結(jié)果。4開發(fā)與運行Java程序需要經(jīng)過哪些主要步驟和過程?(1) 下載、安

3、裝J2SDK;(2) 設(shè)置運行環(huán)境參數(shù):JAVA_HOME、PATH、CLASSPATH;(3) 使用文本編輯器編寫原代碼如HelloWorld.java;(4) 運行命令“javac HelloWorld.java” 編譯HelloWorld.java為HelloWorld.class;(5) 運行“java HelloWorld”生成HelloWorld.exe。5怎樣區(qū)分應(yīng)用程序和小應(yīng)用程序?應(yīng)用程序的主類和小應(yīng)用程序的主類必須用public修飾嗎?Java Application是完整的程序,需要獨立的解釋器來解釋運行;而Java Applet則是嵌在HTML編寫的Web頁面中的非獨立

4、運行程序,由Web瀏覽器內(nèi)部包含的Java解釋器來解釋運行。兩者的主要區(qū)別是:任何一個Java Application應(yīng)用程序必須有且只有一個main方法,它是整個程序的入口方法;任何一個Applet小應(yīng)用程序要求程序中有且必須有一個類是系統(tǒng)類Applet的子類,即該類頭部分以extends Applet結(jié)尾。應(yīng)用程序的主類當源文件中只有一個類時不必用public修飾,但當有多于一個類時則主類必須用public修飾。小應(yīng)用程序的主類在任何時候都需要用public來修飾。6安裝JDK之后如何設(shè)置JDK系統(tǒng)的PATH,CLASSPATH?他們的作用是什么?(1)PATH環(huán)境變量。設(shè)置環(huán)境變量pat

5、h是因為window xp是多用戶操作系統(tǒng),支持不同用戶的個性化系統(tǒng)定制,這里設(shè)置的信息只影響當前用戶,而不會影響其他用戶。假如只有一個用戶,只是運行.class文件,則也不需要設(shè)置path環(huán)境,因為JDK安裝之后會把java.exe等幾個關(guān)鍵文件復(fù)制到c:windowssystem32目錄中,而此目錄已經(jīng)存在于path變量,所以說用戶變量path隨不同用戶而設(shè)置的,設(shè)置路徑:“D:jdk1.5bin ”。 PATH環(huán)境變量作用是指定命令搜索路徑,在命令行下面執(zhí)行命令如javac編譯java程序時,它會到PATH變量所指定的路徑中查找看是否能找到相應(yīng)的命令程序。我們需要把jdk安裝目錄下的bi

6、n目錄增加到現(xiàn)有的PATH變量中,bin目錄中包含經(jīng)常要用到的可執(zhí)行文件如javac/java/javadoc等待,設(shè)置好PATH變量后,就可以在任何目錄下執(zhí)行javac/java等工具了。(2)CLASSPATH環(huán)境變量。作用是指定類搜索路徑,要使用已經(jīng)編寫好的類,前提當然是能夠找到它們了,JVM就是通過CLASSPTH來尋找類的。我們需要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設(shè)置到CLASSPATH中,當然,當前目錄“.”也必須加入到該變量中。設(shè)置classpath環(huán)境變量是為了運行一些特殊的java程序,如以.jar為后綴的文件或者是javac運行java程

7、序,假如不運行這類程序,也就不必要設(shè)置classpath環(huán)境變量了,設(shè)置方法是:(安裝jdk是的目錄為:d:jdk1.5) 那么就在“變量值”文本框中鍵入:“.;D:jdk1.libdt.jar;D:jdk1.5libtools.jar ”;第二章 Java編程基礎(chǔ)1試分析基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的基本特點。Java的基本數(shù)據(jù)類型都有固定的數(shù)據(jù)位,不隨運行平臺的變化而變化?;緮?shù)據(jù)類型包括byte、int、char、long、float、double、boolean和short。 引用類型都是用類或?qū)ο髮崿F(xiàn)的,引用數(shù)據(jù)類型包括:類,數(shù)組,接口?;緮?shù)據(jù)類型和引用類型的區(qū)別主要在于基本數(shù)據(jù)類型

8、是分配在棧上的,而引用類型是分配在堆上的。不論是基本數(shù)據(jù)類型還是引用類型,他們都會先在棧中分配一塊內(nèi)存,對于基本類型來說,這塊區(qū)域包含的是基本類型的內(nèi)容;而對于對象類型來說,這塊區(qū)域包含的是指向真正內(nèi)容的指針,真正的內(nèi)容被手動的分配在堆上 。2分析以下程序段,得到什么打印結(jié)果: 0 -1 1 2 System.out.println( 1 1);System.out.println( -1 31);System.out.println( 2 1);System.out.println( 1 5=true0!=0&25/05=falsepublic class LogicTestpublic s

9、tatic void main(String args) int a=25,b=3; boolean d=a5); System.out.println(e+!=0&+a+/+e+5=+d); int f=0; d=(f!=0&a/f5); System.out.println(f+!=0&+a+/+f+5=+d); 5編寫程序,求兩個整數(shù)的最大公約數(shù)。import java.util.Scanner;public class Gcd_Lcm public static void main(String args) Scanner sc = new Scanner(System.in); Sy

10、stem.out.println(輸入2個數(shù):以, 隔開); String str = sc.next().split(,); int m = Integer.parseInt(str0); int n = Integer.parseInt(str1); int min = mn?n:m; int max = mn?m:n; int num1 =1; int num2 = max; for (int i = min; i0; i-) if (m%i=0&n%i=0) num1 = i;break; while (true) if (num2%m=0&num2%n=0) break; num2

11、= m*nnum2*2?num2*2:m*n; System.out.println(最大公約數(shù):+num1+ 最小公倍數(shù):+num2); 6編寫程序,打印出如下九九乘法表。* | 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 81public class NineByNineMul public

12、 static void main(String args) System.out.print( * |); for(int i=1;i=9;i+) System.out.print( +i+ ); System.out.println(); System.out.print(|); for(int i=1;i=9;i+) System.out.print(); System.out.println(); for(int i=1;i=9;i+) System.out.print( +i+ | ); for(int j=1;j=i;j+) System.out.print(i*j+ ); Sys

13、tem.out.println(); 7下面代碼將輸出: one two default int i = 1;switch (i) case 0: System.out.println(zero); break;case 1: System.out.println(one);case 2: System.out.println(two);default:System.out.println(default);8下面代碼將輸出: Equal class EqualsTest public static void main(String args) char a=u0005; String s=a

14、=0 x0005L?Equal:Not Equal; System.out.println(s); 9編寫程序,對A=30,1,-9,70,25數(shù)組由小到大排序。public class booktest public static void main(String args) int a=30,1,-9,70,25; System.out.print(數(shù)組原始順序:); for (int i=0;ia.length;i+) System.out.print(ai + ); for (int i = 0; i a.length; i+) int lowerIndex = i; for (int

15、 j = i + 1; j a.length; j+) if (aj alowerIndex) lowerIndex = j; int temp = ai; ai = alowerIndex; alowerIndex = temp; System.out.print(n數(shù)組排序后的順序: ); for (int i=0;ia.length;i+) System.out.print(ai + ); 10運行下面代碼將輸出什么內(nèi)容? one int i=1; switch(i)case 0: System.out.println(zero); break;case 1: System.out.pr

16、intln(one); break;case 2: System.out.println(two); break;default: System.out.println(default); 11編寫程序,求2-1000內(nèi)的所有素數(shù),并按每行5列的格式輸出。public class PrimeTest public static void main(String args) int num=2; System.out.print(2 + ); for(int i=3;i=1000;i+=2) boolean f = true; for (int j=2;ji;j+) if(i % j = 0)

17、f= false; break; if(!f) continue; System.out.print(i + ); if(num+%5 = 0)System.out.println(); 12編寫程序,生成100個16之間的隨機數(shù),統(tǒng)計16每個數(shù)字出現(xiàn)的概率。public class RandomTest public static void main(Stringargs) int randomnum=new int100; int n=new int6; double a; for(int i=0;i100;i+) a = Math.random()*6; a = Math.ceil(a)

18、; randomnumi = new Double(a).intValue(); System.out.print(randomnumi); switch (randomnumi) case 1: n0+; break; case 2: n1+; break; case 3: n2+; break; case 4: n3+; break; case 5: n4+; break; case 6: n5+; break; System.out.println();/以下可改為循環(huán)輸出 System.out.println( 數(shù)字1出現(xiàn)的概率=+(n0/100.0)*100+%); System.o

19、ut.println( 數(shù)字2出現(xiàn)的概率=+(n1/100.0)*100+%); System.out.println( 數(shù)字3出現(xiàn)的概率=+(n2/100.0)*100+%); System.out.println( 數(shù)字4出現(xiàn)的概率=+(n3/100.0)*100+%); System.out.println( 數(shù)字5出現(xiàn)的概率=+(n4/100.0)*100+%); System.out.println( 數(shù)字6出現(xiàn)的概率=+(n5/100.0)*100+%); 13編寫程序,求1!+2!+3!+15!。public class FactorialSum static int f(int

20、 x) if (x=0) return 1; else return x*f(x-1); public static void main(Stringargs) int sum=0; for(int j=1;j=15;j+) sum+=f(j); System.out.println(sum); 14編寫程序,分別用do-while和for循環(huán)計算1+1/2!+1/3!+1/4!+的前15項的和。for循環(huán)代碼:public class For_FactorialSum static int f(int x) if (x=0) return 1; else return x*f(x-1); p

21、ublic static void main(Stringargs) double sum=0; for(int j=1;j=15;j+) sum+=1.0/f(j); System.out.println(sum); do-while循環(huán)代碼:public class DoWhile_FactorialSum static int f(int x) if (x=0) return 1; else return x*f(x-1); public static void main(Stringargs) double sum=0; int j=1; do sum+=1.0/f(j); j+;wh

22、ile(j=15); System.out.println(sum); 15編寫一個程序,用選擇法對數(shù)組a=20,10,55,40,30,70,60,80,90,100進行從大到小的排序。(分別采用冒泡排序、選擇排序和插入排序方法)public class SortAll public static void main(String args) int a=20,10,55,40,30,70,60,80,90,100; System.out.println(冒泡排序的結(jié)果:); maoPao(a); System.out.println(); System.out.println(選擇排序的結(jié)

23、果:); xuanZe(a); System.out.println(); System.out.println(插入排序的結(jié)果:); chaRu(a); / 冒泡排序 public static void maoPao(int x) for (int i = 0; i x.length; i+) for (int j = i + 1; j xj) int temp = xi; xi = xj; xj = temp; for (int i : x) System.out.print(i + ); / 選擇排序 public static void xuanZe(int x) for (int

24、i = 0; i x.length; i+) int lowerIndex = i; / 找出最小的一個索引 for (int j = i + 1; j x.length; j+) if (xj xlowerIndex) lowerIndex = j; / 交換 int temp = xi; xi = xlowerIndex; xlowerIndex = temp; for (int i : x) System.out.print(i + ); / 插入排序 public static void chaRu(int x) for (int i = 1; i 0; j-) if (xj xj -

25、 1) int temp = xj; xj = xj - 1; xj - 1 = temp; for (int i : x) System.out.print(i + ); 16編寫程序,產(chǎn)生30個素數(shù),按從小到大的順序放入數(shù)組prime中。public class PrimeArray public static void main(String args) int primearry=new int30; primearry0=2; int num=1; System.out.print(2 + ); for(int i=3;i=1000;i+=2) boolean f = true; f

26、or (int j=2;ji;j+) if(i % j = 0) f= false; break; if(!f) continue; primearrynum+=i; System.out.print(i + ); if(num%5 = 0)System.out.println(); if(num=30)break; 17. 一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。分別編寫一個應(yīng)用程序和小應(yīng)用程序求 1000之內(nèi)的所有完數(shù)。public class Wanshu public static void main(String args) int sum=0,i,j; for(i=1

27、;i=1000;i+) for(j=1,sum=0;ji;j+) if(i%j=0) sum=sum+j; if(sum=i) System.out.print (完數(shù):+i+ +其因子是: ); for(int k=1;k=sum/2;k+) if(sum%k=0) System.out.print( +k); System.out.println(); 18. 從鍵盤讀取若干個數(shù),以“-1”結(jié)束,按從小到大的順序排序。import java.util.Scanner;public class sc_num public static void main(String args) Scann

28、er scanner=new Scanner(System.in);int scnum=0,i=0;int scarry=new int30;System.out.println(輸入整數(shù)(-1結(jié)束):);while(scnum!=-1) scarryi=scanner.nextInt(); scnum=scarryi; i+; xuanZe(scarry,i-1); / 選擇排序 public static void xuanZe(int x,int n) for (int i = 0; i n; i+) int lowerIndex = i; for (int j = i + 1; j n

29、; j+) if (xj xlowerIndex) lowerIndex = j; int temp = xi; xi = xlowerIndex; xlowerIndex = temp; for (int i=0;in;i+) System.out.print(xi + ); 第四章 類與對象的基本概念1面向?qū)ο蟮能浖_發(fā)有哪些優(yōu)點?面向?qū)ο笤O(shè)計是一種把面向?qū)ο蟮乃枷霊?yīng)用于軟件開發(fā)過程中,指導開發(fā)活動的系統(tǒng)方法,是建立在“對象”概念基礎(chǔ)上的方法學。所謂面向?qū)ο缶褪腔趯ο蟾拍?,以對象為中心,以類和繼承為構(gòu)造機制,來認識、理解、刻畫客觀世界和設(shè)計、構(gòu)建相應(yīng)的軟件系統(tǒng)。從面向過程到面向?qū)ο笫浅绦?/p>

30、設(shè)計技術(shù)的一個飛躍。人們之所以要采用面向?qū)ο蟮某绦蛟O(shè)計技術(shù),其目的在于:按照與人類習慣思維方法一致的原則開發(fā)系統(tǒng);提高代碼的可重用性(或者稱為復(fù)用性);提升程序的開發(fā)與運行效率;提高程序的可靠性與可維護性;提高程序的可擴展性;增強程序的可控制性??傊?,面向?qū)ο蟮某绦蛟O(shè)計,能夠有效分解、降低問題的難度與復(fù)雜性,提高整個求解過程的可控制性、可監(jiān)視性和可維護性,從而獲得較高的開發(fā)效率與可靠效果。2什么叫對象?什么叫類?類和對象有什么關(guān)系。對象(Object)是一個應(yīng)用系統(tǒng)中用來描述客觀事物的實體,是具有特定屬性(數(shù)據(jù))和行為(方法)的基本運行單位,是類的一個特定狀態(tài)下的實例。對象是一件事、一個實體、

31、一個名詞、一個可以想象為有自己的標識的任何東西。對象是類的實例化。概括來說:萬物皆對象。對象具有狀態(tài),一個對象用數(shù)據(jù)值來描述它的狀態(tài)。類(Class)是Java代碼的基本組織模塊,是用以描述一組具有共同屬性和行為的對象的基本原型,是對這組對象的概括、歸納與抽象表達。類是對象的模板,它定義了本類對象所應(yīng)擁有的狀態(tài)屬性集及操作這組屬性的行為方法集。是對一組有相同數(shù)據(jù)和相同操作的對象的定義,一個類所包含的方法和數(shù)據(jù)描述一組對象的共同屬性和行為。類和對象之間的關(guān)系是抽象和具體的關(guān)系:類就是一種模板,表達的是一種抽象的概念,它描述了該類對象的共同特征,類是在對象之上的抽象,對象則是類的具體化,是類的實例

32、。對象是模板的實例化,是個性的產(chǎn)物,是一個具體的個體;類必須通過對象才能使用,而對象中的屬性和行為都必須在類中定義;類由屬性和行為(方法)組成。3什么是包?把一個類放在包里有什么作用?Java中的包(Package) 是一種松散的類的集合,是用來組織與管理類與接口的容器。包的作用主要是把需要協(xié)同工作的不同的類組織在一起,使得程序功能清楚、結(jié)構(gòu)分明。4作用域public、private、protected以及不寫時(default)有什么區(qū)別?當用一個類創(chuàng)建了一個對象之后,該對象可以通過“.”運算符訪問自己的變量,并使用類中的方法。但訪問自己的變量和使用類中的方法是有一定限制的。通過修飾符pri

33、vate、default、protected和public來說明類成員的使用權(quán)限。private(私有的):類中限定為private的成員只能在這個類中被訪問,在類外不可見。default(無修飾符,缺省的):如果沒有訪問控制符,則該類成員可以被該類所在包中的所有其它類訪問。protected(受保護的):用該關(guān)鍵字修飾的類成員可以被同一類、被該類所在包中的所有其它類或其子類(可以不在同一包中)的實例對象訪問。public:用public修飾的類成員可以被其他任何類訪問,前提是對類成員所在的類有訪問權(quán)限。類成員訪問控制符與訪問能力之間的關(guān)系同一個類同一個包不同包的子類不同包非子類private

34、*default*protected*public*5什么是方法?方法的結(jié)構(gòu)是怎樣的?設(shè)計方法應(yīng)考慮哪些因素?方法是Java類的一個組成部分,通過類的方法改變對象的狀態(tài)。 方法的結(jié)構(gòu):方法修飾符 返回值類型 方法名(形參列表)throws異常列表 方法體; 設(shè)計方法應(yīng)考慮因素有:(1) 方法名是Java中任意的標識符,按照命名的約定,方法名應(yīng)該是有意義的動詞或動詞短語,它的第一個字母一般要小寫,其他有意義的單詞的首字母要大寫,其余字母小寫。 (2) 返回值類型可以是任意的Java類型,甚至可以是定義此方法的類。如果方法沒有返回值,則用void表示。 (3) 形式參數(shù)列表是可選的。如果方法沒有形

35、式參數(shù),就用一對小括號“()”表示。形式參數(shù)列表的形式如下: (類型 形參名,類型 形參名,) (4) throws異常列表規(guī)定了在方法執(zhí)行中可能導致的異常。6什么是方法的覆蓋? 與方法的重載有何不同?方法的覆蓋與屬性的隱藏有何不同?子類重新定義父類中已經(jīng)存在的方法,稱為方法的覆蓋。方法重載指一個類中有多個方法享有相同的名字,但是這些方法的參數(shù)必須不同,或者是參數(shù)的個數(shù)不同,或者是參數(shù)類型不同。返回類型不能用來區(qū)分重載的方法。其實方法重載的最主要的作用就是實現(xiàn)同名的構(gòu)造方法可以接受不同的參數(shù)。參數(shù)類型的區(qū)分度一定要足夠,例如不能是同一簡單類型的參數(shù),如int與long。方法的重載不是子類對父類

36、同名方法的重新定義,而是在一個類中定義了同名的不同方法。方法覆蓋與屬性的隱藏不同:子類重新定義父類已有的域,并不能完全取代它從父類那里繼承的同名的域,這個域仍然占用子類的內(nèi)存空間,在某些情況下會被使用;而當子類重新定義父類的方法時,從父類那里繼承來的方法將被新方法完全取代,不再在子類的內(nèi)存空間中占一席之地。 7什么是成員變量、局部變量、類變量和實例變量?在方法外但在類聲明內(nèi)定義的變量叫成員變量,作用域是整個類。在方法體中定義的變量和方法的參數(shù)被稱為局部變量。類的成員變量分為類變量和實例變量,類變量是用關(guān)鍵字static聲明的變量。成員變量在整個類內(nèi)都有效,局部變量只在定義它的方法內(nèi)有效。他們的

37、生存期分別是:局部變量在定義該變量的方法被調(diào)用時被創(chuàng)建,而在該方法退出后被撤銷;實例變量在創(chuàng)建該類的實例時被創(chuàng)建,而其生存期和該類的實例對象的生存期相同;類變量在該類被加載時被創(chuàng)建,所有該類的實例對象共享該類變量,其生存期是類的生存期。任何變量在使用前都必須初始化,但是需要指出的是局部變量必須顯式初始化,而實例變量不必,原始類型的實例變量在該類的構(gòu)造方法被調(diào)用時為它分配的缺省的值,整型是0,布爾型是false,而浮點型是0.0f,引用類型(類類型)的實例變量的缺省值是null,類變量的規(guī)則和實例變量一樣,不同的是類變量的初始化是在類被加載時。8什么是繼承?什么是父類?什么是子類?繼承的特性可給

38、面向?qū)ο缶幊處硎裁春锰??繼承(Inheritance):繼承是指從已有的類中派生出若干個新類,是子類自動共享父類之間數(shù)據(jù)和方法的機制。已有類稱為基類或父類,新類稱為派生類或子類;子類將自動地獲得基類的屬性與方法,從而不需再重復(fù)定義這些屬性與方法;當然子類還可以修改父類的方法或增加新的方法,從而使自己更適合特殊的需要。類之間的繼承關(guān)系是現(xiàn)實世界中遺傳關(guān)系的直接模擬。如果沒繼承性機制,則類對象中數(shù)據(jù)、方法就會出現(xiàn)大量重復(fù)。繼承不僅支持系統(tǒng)的可重用性,而且還促進系統(tǒng)的可擴充性。繼承是子對象可以繼承父對象的屬性和行為,亦即父對象擁有的屬性和行為,其子對象也就擁有了這些屬性和行為。這非常類似大自然中的

39、物種遺傳。9什么是多態(tài)?面向?qū)ο蟪绦蛟O(shè)計為什么要引入多態(tài)的特性?多態(tài)性:是指不同類的對象收到相同的消息時,得到不同的結(jié)果。即允許不同類的對象對同一消息作出各自的響應(yīng),以統(tǒng)一的風格處理已存在的數(shù)據(jù)及相關(guān)的操作。即多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,較好地解決了應(yīng)用程序中方法同名的問題。多態(tài)的特點大大提高了程序的抽象程度和簡潔性,更重要的是它最大限度地降低了類和程序模塊之間的耦合性,提高了類模塊的封閉性,使得它們不需了解對方的具體細節(jié),就可以很好地共同工作。這對程序的設(shè)計、開發(fā)和維護都有很大的好處。10“子類的域和方法的數(shù)目一定大于等于父類的域和方法的數(shù)目”,這種說法是否正確?為什

40、么?這樣說是不對的,因為父類的私有方法不能被繼承。如果父類有N個私有域和方法而只有一個非私有的域或方法時,跟據(jù)繼承的原則子類只能擁有父類的非私有域和方法。這時子類的域和方法就要小于父類了。11父類對象與子類對象相互轉(zhuǎn)化的條件是什么?如何實現(xiàn)它們的相互轉(zhuǎn)化?一個子類對象也可以被合法地視為一個父類的對象,即一個父類對象的引用,其指向的內(nèi)存單元可能實際上是一個子類的對象。在這種情況下,可以使用強制類型轉(zhuǎn)換,將父類對象的引用轉(zhuǎn)換成實際的子類對象的引用。12以下代碼共創(chuàng)建了幾個對象: 2 String s1=new String(hello);String s2=new String(hello);St

41、ring s3=s1;String s4=s2;13分析以下代碼,編譯時出現(xiàn)什么現(xiàn)象: The local variable myArg may not have been initializedpublic class Test static int myArg = 1;public static void main(String args) int myArg;System.out.println(myArg);14對于以下程序,運行“java Mystery Mighty Mouse”,得到的結(jié)果: Mouse Mighty public class Mystery public sta

42、tic void main(String args) Changer c = new Changer();c.method(args);System.out.println(args0 + + args1);static class Changer void method(String s) String temp = s0;s0 = s1;s1 = temp;15閱讀下列程序,寫出輸出的結(jié)果: i = 100 i = 10 i = 10class Xxx private int i; Xxx x; public Xxx() i = 10; x = null; public Xxx(int i

43、) this.i = i; x = new Xxx(); public void print() System.out.println(i = + i); System.out.println(x); public String toString() return i = + i; public class Test public static void main(String args) Xxx x = new Xxx(100); x.print(); System.out.println(x.x); 16為了使以下Java應(yīng)用程序輸出11、10、9,應(yīng)在(*)處插入的語句是: ia=(in

44、t)xa+1;如果要求輸出10、9、8,則在(*)處插入的語句應(yīng)是: ia=(int)xa; public class GetIt public static void main(String args) double x = 10.2, 9.1, 8.7; int i = new int3; for(int a = 0;a (x.length);a+) (*) System.out.println(ia); 17閱讀下列程序,分析程序的輸出結(jié)果: My funcabstract class Baseabstract public void myfunc();public void anoth

45、er()System.out.println(Another method);public class Abs extends Basepublic static void main(String argv)Abs a = new Abs();a.amethod();public void myfunc()System.out.println(My func);public void amethod()myfunc();18分析以下代碼,編譯時會出現(xiàn)的錯誤信息是: Test.java:6:secret 可以在A中訪問private (return a.secret+; 出錯)class Apr

46、ivate int secret;public class Testpublic int method(A a)return a.secret+;public static void main(String args)Test test=new Test();A a=new A();System.out.println(test.method(a);19、分析以下程序,寫出運行結(jié)果: 1234public class Test19 public static void changeStr(String str) str=welcome; public static void main(Stri

47、ng args) String str=1234; changeStr(str); System.out.println(str); 20、分析以下程序,寫出運行結(jié)果: ABDCBDCB public class Test20 static boolean foo(char c) System.out.print(c); return true; public static void main(String args) int i = 2; for (foo(A); foo(B) & (i 4); foo(C) i+; foo(D); 21編寫程序,要求創(chuàng)建一個Dog類,添加name,eyeC

48、olor屬性,為該屬性自動添加相應(yīng)的set和get方法,并給出至少兩個構(gòu)造方法。public class Dog private String name, eyeColor; / 無形參的構(gòu)造方法public Dog () this. name =逗逗; this. eyeColor = 黑; / 有形參的構(gòu)造方法public Dog(String name, String eyeColor ) this. name = name; this. eyeColor = eyeColor; public String getEyeColor() return eyeColor;public voi

49、d setEyeColor(String eyeColor) this.eyeColor = eyeColor;public String getName() return name;public void setName(String name) = name; 22統(tǒng)計一個字符串中出現(xiàn)某個字母的次數(shù)(注意區(qū)分大小寫)。String類中的相關(guān)方法(具體用法請查看JDK幫助文檔):length( ):計算字符串長度,得到一個int型數(shù)值;indexOf( ):在字符串中定位某個子串,并返回位置編號substring( ):截取字符串中的一部分,并作為一個新字符串返回;equals( ):比較兩

50、個String內(nèi)容是否完全相同。String str = abckajbfhbbkhfgabkbjkdfasjkbdanjkasfbai;String chr = b;int count = 0;for (int i = 0; i 2);System.out.println(String.valueOf(data,1,3);參考答案:10.0truebcd8寫出下面代碼運行后的輸出結(jié)果是。public class Arrtest public static void main(String kyckling) int i = new int5; System.out.println(i4);

51、amethod(); Object obj = new Object5; System.out.println(obj2); public static void amethod() int K = new int4; System.out.println(K3); 參考答案:00null9什么是封裝?Java語言中的封裝類有哪些?參考答案:封裝是表示把數(shù)據(jù)項和方法隱藏在對象的內(nèi)部,把方法的實現(xiàn)內(nèi)容隱藏起來。Java中的封裝類有Double、Integer、Float、Byte、Long、Character、Short和Boolean等類。10什么是泛型?使用泛型有什么優(yōu)點?泛型List和普通

52、List有什么區(qū)別?參考答案:泛型是對Java語言的數(shù)據(jù)類型系統(tǒng)的一種擴展,以支持創(chuàng)建可以按類型進行參數(shù)化的類??梢园杨愋蛥?shù)看做是使用參數(shù)化類型時指定的類型的一個占位符。優(yōu)點:提高Java程序的類型安全;消除強制類型轉(zhuǎn)換;提高代碼的重用率。泛型List可以實例化為只能存儲某種特定類型的數(shù)據(jù),普通List可以實例化為存儲各種類型的數(shù)據(jù)。通過使用泛型List對象,可以規(guī)范集合對象中存儲的數(shù)據(jù)類型,在獲取集合元素時不用進行任何強制類型轉(zhuǎn)換。11編寫一個程序,實現(xiàn)下列功能:?測試兩個字符串String str1=”It is”和String str2=”It is”;是否相等?將” a book.”

53、與其中的str1字符串連接?用m替換新字符串中的i參考代碼:public class Ex11 public static void main(String args) String str1=It is;String str2=It is;/比較字符串System.out.println(str1=str2的結(jié)果:+(str1=str2);System.out.println(str1.equals(str2)的結(jié)果:+str1.equals(str2);/連接字符串String str3=str1.concat(a book);System.out.println(連接后的字符串為:+st

54、r3);/替換字符String str4=str3.replace(i,m);System.out.println(替換后的字符串為:+str4);12編程計算距當前時間10天后的日期和時間,并用“xxxx年xx月xx日”的格式輸出新的日期和時間。參考代碼:import java.util.Calendar;public class Ex12 public static void main(String args) Calendar cal=Calendar.getInstance();cal.add(Calendar.DAY_OF_YEAR,10);String strDate=cal.ge

55、t(Calendar.YEAR)+年 +(cal.get(Calendar.MONTH)+1)+月 +cal.get(Calendar.DATE)+日;System.out.println(10天后的日期為:+strDate);13創(chuàng)建一個類Stack,代表堆棧(其特點為:后進先出),添加方法add(Object obj)、方法get()和delete( ),并編寫main方法進行驗證。參考代碼:import java.util.LinkedList;import java.util.List;class StackLinkedList list;public Stack() list = n

56、ew LinkedList();public void add(Object obj)list.addFirst(obj);public Object get()return list.getFirst();public void delete()list.removeFirst();public class Ex13 public static void main(String args) Stack stack=new Stack();stack.add(1);stack.add(2);stack.add(3);System.out.println(stack.get();stack.de

57、lete();System.out.println(stack.get();14編寫程序,計算任意兩個日期之間間隔的天數(shù)。參考代碼:import java.util.Calendar;public class Ex14 public static void main(String args) Calendar c1 = Calendar.getInstance(); c1.set(2010, 7, 1); Calendar c2 = Calendar.getInstance(); long ca1 = c1.getTimeInMillis(); long ca2 = c2.getTimeInM

58、illis(); / 計算天數(shù) long days = (ca2 - ca1) / (24 * 60 * 60 * 1000); System.out.println(days);15創(chuàng)建一個HashMap對象,添加一些學生的姓名和成績:張三:90分,李四,83分。接著從HashMap中獲取并他們的姓名和成績,然后把李四的成績改為100分,再次輸出他們的信息。參考代碼:import java.util.HashMap;public class Ex15 public static void main(String args) HashMap map=new HashMap();map.put(

59、張三,90);map.put(李四,83);System.out.println(修改前的成績:);System.out.println(map);map.put(李四,100);System.out.println(修改后的成績:);System.out.println(map);16編寫一個程序,用parseInt方法將字符串200由十六進制轉(zhuǎn)換為十進制的int型數(shù)據(jù),用valueOf方法將字符串123456轉(zhuǎn)換為float型數(shù)據(jù)。參考代碼:public class Ex16 public static void main(String args) String str1=200;Syst

60、em.out.println(Integer.parseInt(str1,16);String str2=123456;System.out.println(Float.parseFloat(str2);17編寫程序,將long型數(shù)據(jù)987654轉(zhuǎn)換為字符串,將十進制數(shù)365轉(zhuǎn)換為十六進制數(shù)表示的字符串。參考代碼:public class Ex17 public static void main(String args) long num=987654L;int i=365;System.out.println(Long類型轉(zhuǎn)換為String:+String.valueOf(num);Stri

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論