版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
《Java語言程序設(shè)計基礎(chǔ)教程》
練習(xí)思索題參考答案
第1章Java程序設(shè)計概述
1.1單項選擇題
1.編譯JavaApplication源文件將產(chǎn)生相應(yīng)的字節(jié)碼文件,擴展名是什
么
A..javaB..class
C..htmlD..exe
解答:B
2.Java語言具有許多優(yōu)點和特點,下列選項中,哪個反映了Java中“一
次編譯,隨處運行”的特點。
A.簡潔性B.平臺無關(guān)性
C.面對對象性D.平安性
解答:B
3.Java語言具有許多優(yōu)點和特點,下列選項中,哪個反映了Java中并
行機制的特點。
A.多線程B.平臺無關(guān)性
C.面對對象性D.平安性
解答:A
4.在Java語言中,下列哪些語句關(guān)于內(nèi)存回收的說明是正確的?
A.程序員必需創(chuàng)建一個線程來釋放內(nèi)存;
B.內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存;
C.內(nèi)存回收程序允許程序員干脆釋放內(nèi)存;
D.內(nèi)存回收程序可以在指定的時間釋放內(nèi)存對象
解答:B
5.一個Java源文件中最多只能有多少個public類。
A.1個B.2個
C.3個D.隨意多個
解答:A
6.下面哪一個不是Java語言所具有的特點。
A.沒有全局變量,在類的定義外部沒有任何的變量定義;
B.不干脆支持指針操作,而運用更平安的引用類型;
C.支持子類對父類的多繼承;
D.具有自動垃圾收集功能;
解答:C
7.下面哪一個不是Java開發(fā)工具包JDK的組成部分。
A.Java的編譯器;
B.Java的說明器;
C.Java的API繼承類庫;
D.Eclipse開發(fā)工具;
解答:C
8.JDK供應(yīng)的編譯器是()o
A.java.exeB.javac.exe
C.javap.exeD.javaw.exe
解答:B
9.作為Java應(yīng)用程序入口的main方法,其聲明格式可以是()
A.publicvoidmain(String[]args)
B.publicstaticvoidmain(String[]args)
C.publicstaticvoidMain(String*args)
D.publicintmain(String[]args)
解答:B
10.下列說法正確的是(A)
A、JAVA程序的main方法必需寫在類里面
B、JAVA程序中可以有多個main方法
C、JAVA程序中類名必需與文件名一樣
D、JAVA程序的main方法中假如只有一條語句,可以不用{}(大括號)
括起來
11.下列哪些語句關(guān)于Java內(nèi)存回收的說明是正確的?(B)
A、程序員必需創(chuàng)建一個線程來釋放內(nèi)存
B、內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存
C、內(nèi)存回收程序允許程序員干脆釋放內(nèi)存
D、內(nèi)存回收程序可以在指定的時間釋放內(nèi)存對象
1.2填空題
1、開發(fā)與運行Java程序須要經(jīng)過的三個主要步驟為、
和O
解答:編輯源程序、編譯生成字節(jié)碼和說明運行字節(jié)碼
2、運用Java編譯器—javac—.exe編譯源文件得到字節(jié)碼文件。
3、Java應(yīng)用程序必需通過Java說明器_JAVA_.exe來說明執(zhí)行
其字節(jié)碼文件。
4、假如Java源文件中有一個類是public類,那么源文件的名字必
需與這個類的名字完全.相同,擴展名是.javao
5、Java應(yīng)用程序總是從主類的—main—方法起先執(zhí)行.
1.3簡答題
13.簡述Java程序的開發(fā)過程?
(1)運用一個文字編輯器,編寫源文件。(2)運用java編譯器,編
譯源文件得到字節(jié)碼文件。
(3)說明運行字節(jié)碼,分兩種java應(yīng)用程序必需通過java說明器來說
明執(zhí)行,java小應(yīng)用程序必需運用說明器和閱讀器運行程序。
1.什么是Java虛擬機?為什么Java被稱作是“平臺無關(guān)的編程語
言”?
解答:
Java虛擬機是一個可以執(zhí)行Java字節(jié)碼的虛擬機進程。Java源文
件被編譯成能被Java虛擬機執(zhí)行的字節(jié)碼文件。
Java被設(shè)計成允許應(yīng)用程序可以運行在隨意的平臺,而不須要程序員
為每一個平臺單獨重寫或者是重新編譯。Java虛擬機讓這個變?yōu)榭赡埽?/p>
因為它知道底層硬件平臺的指令長度和其他特性。
3.Java語言的關(guān)鍵特點有哪些?
解答:
簡潔性
平臺無關(guān)性
面對對象性
平安性
分布式
多線程
動態(tài)性
1.4綜合題
第2章Java基本的程序設(shè)計結(jié)構(gòu)
2.1單項選擇題
1、下面哪一項在java中是非法的標(biāo)識符?()
A.$user
B.point
C.You&me
D.endline
解答:C
2、若有定義inta=9,b=6;那么a>b的值是:()
A.0B.1
C.falseD.true
解答:D
3、執(zhí)行完以下代碼int口x=newint[25];后,以下說明正確的是:
)
A.x[24]為0B.x[24床定義
C.x[25]為0D.x[0]為空
解答:A
4、Java應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是
)o
int[]X={2,3,-8,7,9};
intmax=x[O];
for(inti=1;i<x.length;i++){
if(x[i]>max)
max=x[i];
System,out.println(max);
A.2B.-8
C.7D.9
解答:D
5、設(shè)x=1,y=2,z=3,則表達式y(tǒng)+=z----/++x的值是
)
A.3B.3.5
C.4D.5
解答:A
5、執(zhí)行System.out.printing/4),這條代碼的輸出結(jié)果是()
A.1B.1.25
C.1.5D.0
解答:A
6、下列語句有錯誤的是:()
A.int[]a;B.int[]b=newint[10];
C.intc[]=newint[];D.intd[]=null;
解答:C
7、下列語句有錯誤的是:()
A.inta[][]=newint[5][5];B.int[][]b=newint[5][5];
C.int[]c[]=newint[5][5];D.int[][]d=newint[5,5];
解答:D
8、下列哪一個不屬于Java中的8種基本數(shù)據(jù)類型()
A.double;B.char;
C.int;D.String;
解答:D
9、以下數(shù)據(jù)類型存儲空間最大的是()o
(A)byte(B)long(C)float(D)char
解答:B
10^System.out.println("5"+2);的輸出結(jié)果應(yīng)當(dāng)是()。
A52B7
C2D5
答案:A
11.在類的定義中可以有兩個同名方法,每個方法的參數(shù)不同,這種
現(xiàn)象稱為方法(D)o
(A)封裝(B)繼承(C)覆蓋(D)重載
12.java中定義字符串Strings="pzhu",下面操作可以取得字符
串長度的是()o
A.s.lengthQB.s.lengthC.s.sizeQD.
length(s)
解答:A
13.指出下列程序運行的結(jié)果(B)(很難)
publicclassExample{
Stringstr=newStringC'good");
char[]ch={'a','b','c');
publicstaticvoidmain(Stringargs[]){
Exampleex=newExampleQ;
ex.change(ex.str,ex.ch);
System.out.print(ex.str+"and");
System.out.print(ex.ch);
publicvoidchange(Stringstr,charch[]){
str="testok";
ch[O]='g';
A、goodandabc
B、goodandgbc
C、testokandabc
D、testokandgbc
14.下面代碼的運行結(jié)果為:(C)(較難)
importjava.io.*;
importjava.util.*;
publicclassfoo{
publicstaticvoidmain(String[]args){
Strings;
System.out.printin("s="+s);
A代碼得到編譯,并輸出“s=”
B代碼得到編譯,并輸出<<s=nuir,
C由于Strings沒有初始化,代碼不能編譯通過
D代碼得到編譯,但捕獲到NullPointException
15.關(guān)于以下程序段,正確的說法是(C)
1.Stringsl="abc"+"def";
2.Strings2=newString(si);
3.if(sl==s2)
4.System.out.println("==succeeded");
5.if(sl.equals(s2))
6.System.out.println(M.equals()succeeded");
A、行4與行6都將執(zhí)行
B、行4執(zhí)行,行6不執(zhí)行
C、行6執(zhí)行,行4不執(zhí)行
D、行4、行6都不執(zhí)行
16.Javaapplication中的主類需包含main方法,main方法的返
回類型是什么?(D)A、intB、float
C、doubleD、void
17.為一個boolean類型變量賦值時,可以運用(B)方式
A、boolean=1;
B、booleana=(9>=10);
C^booleana="真";
D、booleana==false;
18.表達式(ll+3*8)/4%3的值是(D)
A、31B、0C、ID、2
19.運算符優(yōu)先級別排序正確的是(A)(太難)
A、由高向低分別是:()、!、算術(shù)運算符、關(guān)系運算符、邏輯運算符、
賦值運算符;
B、由高向低分別是:()、關(guān)系運算符、算術(shù)運算符、賦值運算符、!、
邏輯運算符;
C、由高向低分別是:()、算術(shù)運算符、邏輯運算符、關(guān)系運算符、!、
賦值運算符;
D、由高向低分別是:()、!、關(guān)系運算符、賦值運算符、算術(shù)運算符、
邏輯運算符;
20.下列值不為true的表達式有(C)。
A、"john"=="john
B、"john".equals("john")
C、"john"="john"
D、"john".equals(newString("john"))
21、下面的方法,當(dāng)輸入為2的時候返回值是多少?(D)(很難)
publicstaticintgetValue(inti){
intresult=0;
switch(i){
case1:
result=result+i;
case2:
result=result+i*2;
case3:
result=result+i*3;
I
returnresult;
AOB2C4
DIO
答案:D
解析:留意這里case后面沒有加break,所以從case2起先始終往
下運行。
22、下面有關(guān)for循環(huán)的描述正確的是(A)
A、for循環(huán)體語句中,可以包含多條語句,但要用大括號括起來
B、for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的狀況
C、在for循環(huán)中,不能運用break語句跳出循環(huán)
D、for循環(huán)是先執(zhí)行循環(huán)體語句,后進行條件推斷
23、score是一個整數(shù)數(shù)組,有五個元素,已經(jīng)正確初始化并賦值,
細(xì)致閱讀下面代碼,程序運行結(jié)果是(B)
temp=score[0];
for(intindex=1;index<5;index++){
if(score[index]<temp){
temp=score[index];
|
}
A.求最大數(shù)B.求最小數(shù)C.找到數(shù)組最終一個元素D.編譯出
錯
26、
2.2填空題
1、Java語言是一種完全的.面對對象_程序設(shè)計語言
2、Strings1="China”;intn=sl.length();n的值為_5—
3、在Java語言中,基本數(shù)據(jù)類型包括:—整數(shù)類型、—浮點類
型、__字符類型一和一布爾類型
17、在Java的基本數(shù)據(jù)類型中,char型接受Unicode編碼方案,
每個Unicode碼占用_2—字節(jié)內(nèi)存空間,這樣,無論是中文字符還是
英文字符,都是占用_2—字節(jié)內(nèi)存空間。
18、設(shè)x=2,則表達式(x++)/3的值是_0—。
20、設(shè)有數(shù)組定義:
intMyIntArray[]={10,20,30,40,50,60,70);
則執(zhí)行以下幾個語句后的輸出結(jié)果是:120o
intMyIntArray[]={10,20,30,40,50,60,70};
ints=0;
for(inti=0;i<MylntArray.length;i++)
if(i%2==1)
s+=MylntArray[i];
System.out.println(s);
21、數(shù)組對象的長度在數(shù)組對象創(chuàng)建之后,就—不會—變更。數(shù)組
元素的下標(biāo)總是從一。一起先。
22、對于數(shù)組由用母={{1,2,3},{4,5,6}}來說,t.length等于_2—,
t[0].length等于_3o
2.3簡答題
1、Java的基本數(shù)據(jù)類型有哪8種,每種類型的內(nèi)存空間分別是多少。
2.4綜合題
26、編程計算1。~2。的整數(shù)的平方值,將結(jié)果保存在一個數(shù)組中。
27、編寫一個程序使之從鍵盤讀入10個整數(shù)存入整型數(shù)組a中,并
輸出這10個整數(shù)的最大值和最小值。
importjava.util.Scanner;
publicclasslianxi30(
publicstaticvoidmain(Stringargs[]){
Scannertemp;
float[]sum=newfloat[11];
floatmax,min;
for(inti=0;i<10;i++){
System.outprintln("請輸入第一個數(shù)字(回車結(jié)束):");
temp=newScanner(System.zn);
Stringa=temp.nextLineQ;
sum[i]=Integer.parse/nda);//獲得輸入的字符串
}
max=sum[0];
min=sum[0];
for(intj=1;j<10;j++)
{
if(max<sum[j])
max=sum[j];
elseif(min>sum[j])
min=sum[j];
System.OLzAprintln(max);
System.OLZ^.println(min);
}
}
31、假如我國經(jīng)濟以每年10%的速度保持穩(wěn)定增長,請編寫一個程序,
計算每年達到多少,多少年可以實現(xiàn)總量翻兩番。
classexA4_l{
publicstaticvoidmain(Stringargs[]){
inta=0;
doublei=0.10,sum=l;
while(sum<=4){
sum=(i+l)*sum;
a++;
System.out.println("第"+a+"年達到"+sum);
System.out.printing須要"+a+"年實現(xiàn)兩番");
第3章類和對象
3.1單項選擇題
1、下列關(guān)于變量的敘述哪個是錯的?()
A.實例變量是類的成員變量。
B.在方法中定義的局部變量在該方法被執(zhí)行時創(chuàng)建。
C.實例變量用關(guān)鍵字static聲明。
D.局部變量在運用前必需被初始化。
解答:C
2、在Java語言中,下列哪個包是編譯器自動導(dǎo)入的?()
A.java.appletB.java.lang
C.java.ioD.java.awt
解答:B
6、不允許作為類與類成員的訪問限制符的是()o
A.publicB.private
C.staticD.protected
解答:C
7、為AB類的一個無形式參數(shù)無返回值的方法method書寫方法頭,
使得運用類名AB作為前綴就可以調(diào)用它,該方法頭的形式為()o
A、staticvoidmethod()B、publicvoid
method()
C、finalvoidmethod()D、abstractvoid
method()
解答:A
8、可以在下面代碼段pointx處寫入的是?()
//pointx
publicclassInteresting(
//dosomething
}
A.Stringstr;
B.staticintPI=3.14;
C.publicclassMyClass{//dootherthing-
D.importjava.awt.*;
解答:D
9、Java供應(yīng)的許多類在不同的包中,運用下面哪個語句可以引入包
中的類。
A.packageB.include
C.importD.add
解答:C
11、已知A類被打包在packageA,B類被打包在packageB,且B
類被聲明為public,且有一個成員變量x被聲明為protected限制方式。
C類也位于packageA包,且繼承了B類。則以下說法正確的是:()
A、A類的實例不能訪問到B類的實例
B、A類的實例能夠訪問到B類一個實例的x成員
C、C類的實例可以訪問到B類一個實例的x成員
D、C類的實例不能訪問到B類的實例
解答:C(太難)
13、在Java中,關(guān)于final關(guān)鍵字的說法正確的是()
A、假如修飾變量,則一旦賦了值,就等同一個常量。
B、假如修飾類,則該類只能被一個子類繼承。
C、假如修飾方法,則該方法不能在子類中被覆蓋。
D、假如修飾方法,則該方法所在的類不能被繼承。
解答:A,C
14、關(guān)于構(gòu)造方法以下說法錯誤的是(D)o
(A)構(gòu)造方法名必需與類名一樣(B)構(gòu)造方法可以重載
(C)構(gòu)造方法是通過new來調(diào)用(D)每個類都必需編寫構(gòu)
造方法代碼
15、關(guān)于類的定義以下說法錯誤(B)。
(A)類定義運用class關(guān)鍵字(B)每個類中必需有一個main
方法
(C)一個包可以包含多個類(D)java中全部類都是Object類
的子類
16、在創(chuàng)建對象時必需(C)
A)先聲明對象,然后才能運用對象
B)先聲明對象,為對象支配內(nèi)存空間,然后才能運用對象
C)先聲明對象,為對象支配內(nèi)存空間,對對象初始化,然后才能
運用對象
D)上述說法都對
17、在調(diào)用方法時,若要使方法變更實參的值,可以(B)
A)用基本數(shù)據(jù)類型作為參數(shù)B)用對象作為參數(shù)
C)A和B都對D)A和B都不對
18、關(guān)于以下程序代碼的說明正確的是(D)
classHasStatic{
privatestaticintx=100;
publicstaticvoidmain(Stringargs[]){
HasStatichsl=newHasStatic();
hsl.x++;
HasStatichs2=newHasStatic();
hs2.x++;
hs1=newHasStatic();
hsl.x++;
HasStatic.x-
System.out.printin("x="+x);
}
}
A、5行不能通過編譯,因為引用了私有靜態(tài)變量
B、10行不能通過編譯,因為x是私有靜態(tài)變量
C、程序通過編譯,輸出結(jié)果為:x=103
D、程序通過編譯,輸出結(jié)果為:x=102
19、以下關(guān)于構(gòu)造函數(shù)的描述錯誤的是(A)。
A、構(gòu)造函數(shù)的返回類型只能是void型。
B、構(gòu)造函數(shù)是類的一種特殊函數(shù),它的方法名必需與類名相同。
C、構(gòu)造函數(shù)的主要作用是完成對類的對象的初始化工作。
D、一般在創(chuàng)建新對象時,系統(tǒng)會自動調(diào)用構(gòu)造函數(shù)。
20、Java中,在如下所示的Test類中,共有(C)個構(gòu)造方法。
publicclassTest{
privateintx;
publicTest(){x=35;}
publicvoidTest(doublef){This.x=(int)f;}
publicTest(Strings){}
I
A、OB、IC、2D、3
21、在Java中,關(guān)于構(gòu)造方法,下列說法錯誤的是(C)
A、構(gòu)造方法的名稱必需與類名相同
B、構(gòu)造方法可以帶參數(shù)
C、構(gòu)造方法不行以重載
D、構(gòu)造方法確定不能有返回值
22、在Java語言中,下列關(guān)于類的繼承的描述,正確的是(B)。
A、一個類可以繼承多個父類
B、一個類可以具有多個子類
C、子類可以運用父類的全部方法
D、子類確定比父類有更多的成員方法
23、分析選項中關(guān)于Java中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、同一個類的不同對象共用一個this
24、在Java接口中,下列選項中有效的方法聲明是(A)。
A、publicvoidaMethodQ;
B、publicfinalvoidaMethodQ;
C^protectedvoidaMethodQ;
D、privatevoidaMethod();
25、下列選項中關(guān)于Java中super關(guān)鍵字的說法正確的是(A)。
A、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程序中,通過類的定義只能實現(xiàn)—單重繼承—,但通
過接口的定義可以實現(xiàn)多—多重繼承—。
2、_抽象(abstract)—方法是一種僅有方法頭,沒有具體方法體和
操作實現(xiàn)的方法,該方法必需在抽象類之中定義。—final方法是不能
被當(dāng)前類的子類重新定義的方法。
3、面對對象程序設(shè)計的三個特征是____封裝、多態(tài)、繼承
4、Java是面對對象語言,類是客觀事物的.抽象,而對象是類的
.實例一o
5、假如在子類中想運用被子類隱藏的父類成員變量或方法,就可以運
用關(guān)鍵字一supero
6、Java中有一種叫作—構(gòu)造方法一的特殊方法用來對類的對象成員
進行初始化。
7、JAVA語言中供應(yīng)了兩種類型的字符串類來處理字符串,它們是
___$在111£和___StringBuffer類
8、Java語言中,全部的類都是—Object的子類,Java的窗口通
常是—JFrame__的子類,—抽象一類只能定義但不能被實例化,.最終
一類不能被繼承
9、一般Java程序的類體由兩部分組成:一部分是一屬性_,另一部分
是一方法一
1。、分別用—class_關(guān)鍵字來定義類,用_new__關(guān)鍵字來支配實例存
儲空間。
11、Java中類成員的限定詞有以下幾種:_private_public__,
protected____,_缺省__。其中,.public一的限定的范圍最大。類中
限定為—private—的成員,只能被這個類本身內(nèi)部訪問。
12、Java類中,假如類的定義者沒有顯式的定義任何構(gòu)造方法,系
統(tǒng)將自動供應(yīng)一個一無參默認(rèn).構(gòu)造方法。
13、在子類中定義與父類的相同的方法,若在多個子類中定義相同的方
法,則可以調(diào)用不同子類中的相同方法而實現(xiàn)不同的功能,這實現(xiàn)了程序運
行時的多態(tài)。
3.3簡答題
1.簡潔闡述方法的重載和方法的重寫之間的區(qū)分
解答:
重寫是子類的方法覆蓋父類的方法,要求方法名和參數(shù)都相同
重載是在同一個類中的兩個或兩個以上的方法,擁有相同的方法名,
但是參數(shù)卻不相同
2、簡述實例變量和類變量的區(qū)分。
解答:類變量也叫靜態(tài)變量,也就是在變量前加了static的變量;實
例變量也叫對象變量,即沒加static的變量;
區(qū)分在于:類變量是全部對象共有,其中一個對象將它值變更,其他
對象得到的就是變更后的結(jié)果;而實例變量則屬對象私有,某一個對象將
其值變更,不影響其他對象;
2、簡述實例方法和類方法的區(qū)分
解答:實例方法可以對當(dāng)前對象的實例變量進行操作,也可以對類變
量進行操作,實例方法由實例對象調(diào)用。但類方法不能訪問實例變量,只
能訪問類變量。類方法可以由類名干脆調(diào)用,也可由實例對象進行調(diào)用。
類方法中不能運用this或super關(guān)鍵字。
3、面對對象的三個基本特征是什么,分別簡潔介紹每個特征。
解答:三大特性是:封裝,繼承,多態(tài)。
封裝性就是把對象的屬性和服務(wù)結(jié)合成一個獨立的單位,并盡可能隱
藏對象的內(nèi)部微小環(huán)節(jié)。
特殊類的對象擁有其一般類的全部屬性與服務(wù),稱作特殊類對一般類
的繼承。
對象的多態(tài)性是指在一般類中定義的屬性或服務(wù)被特殊類繼承之后,
可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個屬性或服務(wù)
在一般類與其各個特殊類中具有不同的語義。
4、簡潔闡述成員變量和局部變量的區(qū)分。
解答:
1)成員變量在整個類內(nèi)都有效,局部變量只在定義它的方法內(nèi)有效。
2)成員變量又分為實例成員變量(簡稱實例變量)和類變量(也稱靜
態(tài)變量),假如成員變量的類型前面加上關(guān)鍵字static,這樣的成員變量
稱為類變量或靜態(tài)變量。
3)假如局部變量的名字與成員變量的名字相同,則成員變量被隱藏,
也就是說,這個成員變量在這個方法內(nèi)短暫失效。這時假如想在該方法內(nèi)
運用成員變量,必需運用關(guān)鍵字this。
5、簡述對象的引用和實體。
解答:當(dāng)用類創(chuàng)建一個對象時,類中的成員變量被支配內(nèi)存空間,這
些內(nèi)存空間稱為該對象的實體,而對象中存放著引用,以確保實體由該對
象操作運用。沒有實體的對象稱為空對象,空對象不能運用,即不能讓一
個空對象去調(diào)用方法產(chǎn)生行為。
6、簡述this關(guān)鍵字的意義,以與它在成員方法和構(gòu)造方法中如何運
用。
解答:this是Java的一個關(guān)鍵字,表示某個對象。this可以出現(xiàn)在
實例方法和構(gòu)造方法中,但不行以出現(xiàn)在類方法中。this可以出現(xiàn)在實例
方法和構(gòu)造方法中,但不行以出現(xiàn)在類方法中。this關(guān)鍵字出現(xiàn)在類的構(gòu)
造方法中時,代表運用該構(gòu)造方法所創(chuàng)建的對象。實例方法必需通過對象
來調(diào)用,當(dāng)this關(guān)鍵字出現(xiàn)在類的實例方法中時,代表正在調(diào)用該方法
的當(dāng)前對象。
成員函數(shù)中定義了和成員變量中相同的變量時,引用成員變量要用
this;構(gòu)造函數(shù)中調(diào)用同一個類的其他構(gòu)造函數(shù)時用thiSo
7、簡潔描述Java的參數(shù)傳值中的兩種方式,基本數(shù)據(jù)類型參數(shù)的傳
值和引用類型參數(shù)的傳值?
解答:在基本數(shù)據(jù)類型參數(shù)的傳值中,基本數(shù)據(jù)類型的參數(shù)向該參數(shù)
傳遞的值的級別不行以高于該參數(shù)的級別。
在引用類型參數(shù)的傳值中,Java的引用類型數(shù)據(jù)包括對象、數(shù)組和接
口,當(dāng)參數(shù)是引用類型時,“傳值''傳遞的是變量的引用而不是變量所引
用的實體。假如變更參數(shù)變量所引用的實體,就會導(dǎo)致原變量的實體發(fā)生
同樣的變更,但是假如變更參數(shù)的引用不會影響向其傳值的變量的引用。
8、基本數(shù)據(jù)類型和對象作為參數(shù)傳遞的不同?
解答:
(1)基本數(shù)據(jù)類型作為參數(shù)在方法中傳遞的是值傳遞。
(2)對象是引用傳遞,當(dāng)對象作為參數(shù)傳遞時,傳遞的是對象的地
址。
3.4綜合題
1、定義一個“點”(Point)類用來表示三維空間中的點,類體的成員
變量x,y,z分別表示三維空間的坐標(biāo)。類體中具有如下成員方法的定義:
1)構(gòu)造方法Point??梢陨删哂刑囟ㄗ鴺?biāo)的點對象。
2)setX(),setY(),setZ()為可以設(shè)置三個坐標(biāo)的方法。
3.)getDistance。為可以計算該點距離原點距離平方的方法。
解答:
classPoint{
doublex,y,z;
Point(double_x,double_y,double_z)
I
X=_x;
y=q;
z=_z;
)
voidsetX(double_x){
x=_x;
}
voidsetY(double_y){
y=_y;
)
voidsetZ(double_z){
z=_z;
doublegetDistance(){
return(x*x+y*y+z*z);
}
2、編寫一個Java應(yīng)用程序Test類,實現(xiàn)成員方法max(a,b)的重載。
具體要求如下:
a)編寫voidmax(inta,intb)成員方法,對兩個整數(shù)進行大小的比較,
輸出打印較大的那個整數(shù)。
b)編寫voidmax(floata,floatb)成員方法,對兩個float數(shù)進行大小的
比較,輸出打印較大的那個float數(shù)。
c)編寫voidmax(doublea,doubleb)成員方法,對兩個double數(shù)進
行大小的比較,輸出打印較大的那個double數(shù)。
publicclassTest{
voidmax(inta,intb){
System.out.println(a>b?a:b);
}
voidmax(floata,floatb){
System,out.printin(a>b?a:b);
voidmax(doublea,doubleb){
System.out.printin(a>b?a:b);
}
publicstaticvoidmain(String[]args){
Testt=newTest();
t.max(3,4);
}
}
3、編寫一個矩形類對數(shù)學(xué)中的矩形進行抽象描述,并具有方法可以計算
矩形的周長和面積,具體分為以下三個子任務(wù)完成。
(1)創(chuàng)建Rectangle類,添加屬性width、height,并定義構(gòu)造方法
Rectangle(double_width,double_height);
(2)在Rectangle類中添加兩種方法computCircum()和computAreaQ
分別計算矩形的周長和面積;
(3)編程利用Rectangle對象輸出一個30*40的矩形的周長和面積。
解答:
publicclassTestRectang{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Rectanglerecti=newRectangle(20,30);
System.oiztprintln(rect1putAreaQ);
System.outprintln(rect1putCircumQ);
}
}
classRectangle{
doublewidth,height;
Rectangle(){
width=0;
height=0;
}
Rectangle(double_width,double_height){
width=_width;
height=_height;
doublecomputAreaQ{
returnwidth*height;
}
doublecomputCircum(){
return2*(width+height);
第4章繼承、接口和內(nèi)部類
4.1單項選擇題
1、Java中用于定義接口的關(guān)鍵字是()
A、importB、package
C、classD、interface
解答:D
2、以下關(guān)于abstract的說法,正確的是()
A、abstract只能修飾類
B、abstract只能修飾方法
C、abstract類中必需有abstract方法
D、abstarct方法所在的類必需用abstract修飾
解答:D
3、下列哪種說法是正確的()
A、私有方法不能被子類覆蓋。
B、子類可以覆蓋超類中的任何方法。
C、覆蓋方法可以聲明自己拋出的異樣多于那個被覆蓋的方法。
D、覆蓋方法中的參數(shù)清單必需是被覆蓋方法參數(shù)清單的子集。
解答:A
4、關(guān)于類繼承的說法,正確的是()
A、Java類允許多重繼承
B、Java接口允許多繼承
C、接口和類都允許多繼承
D、接口和類都不允許多繼承
解答:B
5、關(guān)于抽象類,正確的是_____o
A.抽象類中不行以有非抽象方法
B.某個非抽象類的父類是抽象類,則這個子類必需重載父類的全
部抽象方法
C.可以用抽象類干脆去創(chuàng)建對象
D.接口和抽象類是同一個概念
解答:B
8、抽象類A和抽象類B的定義如下:
abstractclassA{
abstractintgetinfo();
}
publicclassBextendsA{
privateinta=0;
publicintgetinfo(){
returna;
}
publicstaticvoidmain(Stringargs[]){
Bb=newB();
System.out.printin(b.getinfo());
)
)
關(guān)于上述代碼說明正確的是()o
A.輸出結(jié)果為0B.通過編譯但沒有輸出任何結(jié)果
C.第5行不能通過編譯D.程序第2行不能通過編譯
解答:A
9、下面程序的運行結(jié)果是______
classex4_5_l1_A{
protectedstaticintcount=0;
publicex4_5_l1_A(){
count++;
I
f
I
J
classex4_5_l1_Bextendsex4_5_l1_A{
publicex4_5_l1_B(){
count++;
}
f
classex4_5_l1{
publicstaticvoidmain(Stringargs[]){
ex4_5_l1_Bx=newex4_5_l1_B();
System.out.println("count="+x.count);
A.count=1B.count=2
C.count=3D.count=4
解答:B
1。、設(shè)有下面兩個類的定義:
classPerson
{longid;//身份證號
Stringname;//姓名
}
classStudentextendsPerson
{intscore;//入學(xué)總分
intgetScore(){
returnscore;
|
}
問:類Person和類Student的關(guān)系是()
A、包含關(guān)系B、繼承關(guān)系
C、關(guān)聯(lián)關(guān)系D、無關(guān)系,上述類定義有語法錯誤
解答:B
11、以下程序代碼錯誤的是(B)。
abstractclassP{}
classAextendsP{}
abstractclassBextendsP{}
(A)Pp=newA();(B)Pp=newB();
(C)Aa=newA();(D)Pp=newP(){voidfoo(){1};
12、下面是People和Child類的定義和構(gòu)造方法,每個構(gòu)造方法都
輸出編號。在執(zhí)行newChild("mike")的時候都有哪些構(gòu)造方法被依次調(diào)
用?請選擇輸出結(jié)果(D)
classPeople{
Stringname;
publicPeople(){
System.out.print(l);
}
publicPeople(Stringname){
System.out.print(2);
this,name=name;
classChildextendsPeople{
Peoplefather;
publicChild(Stringname){
System.out.print(3);
this,name=name;
father=newPeople(name+":F");
}
publicChild(){
System.out.print(4);
A312B32C432D
132
13、選項中哪一行代碼可以替換題目中//addcodehere而不產(chǎn)生編
譯錯誤?(A)
publicabstractclassMyClass{
publicintconstlnt=5;
//addcodehere
publicvoidmethodQ{
}
}
Apublicabstractvoidmethod(inta);
Bconstlnt=constlnt+5;
Cpublicintmethod();
DpublicabstractvoidanotherMethod(){}
15、以下哪項是接口的正確定義?(D)
A、interfaceB{voidprint(){}}
B、abstractinterfaceB{voidprint()}
C、abstractinterfaceBextendsA1,A2〃A1、A2為已
定義的接口
{abstractvoidprint(){};}
D、interfaceB{voidprint();}
16、A派生出子類B,B派生出子類C,并且在Java源代碼中有如
下聲明:
1.AaO=newA();
2.Aal=newB();
3.Aa2=newC();
問以下哪個說法是正確的?(D)
A、只有第1行能通過編譯
B、第1、2行能通過編譯,但第3行編譯出錯
C、第1、2、3行能通過編譯,但第2、3行運行時出錯
D、第1行、第2行和第3行的聲明都是正確的
17、假設(shè)A類有如下定義,設(shè)a是A類的一個實例,下列語句調(diào)用哪
個是錯誤的?(C)
classA
{inti;
staticStrings;
voidmethod1(){}
staticvoidmethod2(){}
/I
A^System.out.println(a.i);B>a.methodl();
C、A.method1();D、A.method2()
18、以下關(guān)于繼承的敘述正確的是(A)。
A、在Java中類只允許單一繼承
B、在Java中一個類只能實現(xiàn)一個接口
C、在Java中一個類不能同時繼承一個類和實現(xiàn)一個接口
D、在Java中接口只允許單一繼承
19、以下關(guān)于抽象類和接口的說法錯誤的是(E)
A、抽象類在Java語言中表示的是一種繼承關(guān)系,一個類只能運用
一次繼承。但是一個類卻可以實現(xiàn)多個接口。
B、在抽象類中可以沒有抽象方法
C、實現(xiàn)抽象類和接口的類必需實現(xiàn)其中的全部方法,除非它也是抽
象類。接口中的方法都不能被實現(xiàn)
D、接口中定義的變量默認(rèn)是publicstaticfinal型,且必需給其初
值,所以實現(xiàn)類中不能重新定義,也不能變更其值。
E、接口中的方法都必需加上public關(guān)鍵字。
4.2填空題
1、在Java語言中全部的類都是干脆或間接地繼承.Object
類而得到的。
2、在Java中一個父類可以有—多一個子類,一個類只能有一——
個干脆父類。
3、Java中不能被實例化、只能被子類繼承的是—抽象類
4、當(dāng)子類中的變量或方法與父類的變量和方法重名時,子類的變量被
隱藏,子類中的方法被重載。此時,指向父類中的變量或方
法,則用super關(guān)鍵字實現(xiàn)。
5、用來定義一個類指定繼承父類的關(guān)鍵字是______extends,用來指
定接口的繼承的關(guān)鍵字是______implements
7、在已有類的基礎(chǔ)上構(gòu)造一個新的類,稱為類的繼承。
4.3簡答題
1、請舉例簡要說明JAVA語言的繼承機制有何特點?
解答:子類可以運用父類中的成員變量和方法,然后也可以添加自己
的屬性和方法。假如子類沒有構(gòu)造方法,則編譯器首先為子類添加一個無
參的構(gòu)造方法,然后調(diào)用父類的默認(rèn)構(gòu)造方法,假如子類有構(gòu)造方法,則
先調(diào)用父類的默認(rèn)構(gòu)造方法,再調(diào)用子類的構(gòu)造方法;假如父類中沒有默
認(rèn)構(gòu)造方法,則出錯。(太難)
2、什么是繼承?什么是多重繼承和單繼承?Java接受何種機制來實
現(xiàn)多重繼承?
解答:繼承是面對對象編程的一種特性,是保留原有類功能的前提下
拓展或改寫部分功能,實現(xiàn)代碼復(fù)用的方式。單繼承就是一個類只可以繼
承自一個父類,多繼承是指一個類可以同時繼承多個父類。java中運用的
是單繼承,也就是一個類有且只能有一個父類,java中可以運用接口實現(xiàn)
來實現(xiàn)類似多繼承的效果。
3、簡述super關(guān)鍵字的意義,以與如何運用。
解答:關(guān)鍵字super表示父類對象。通過在子類中運用super做前綴
可以引用被子類隱藏的父類變量或被子類重寫的父類方法。super用來引
用當(dāng)前對象的父類,雖然構(gòu)造方法不能夠繼承,但利用super關(guān)鍵字,子
類構(gòu)造方法中也可以調(diào)用父類的構(gòu)造方法。1)操作被隱藏的變量和方法⑵
運用super調(diào)用父類的構(gòu)造方法。
4、抽象類是什么,抽象方法是什么。
解答:抽象類就是不能運用new方法進行實例化的類,即沒有具體實
例對象的類。抽象類有點類似“模板”的作用,目的是依據(jù)其格式來創(chuàng)建
和修改新的類。對象不能由抽象類干脆創(chuàng)建,只可以通過抽象類派生出新
的子類,再由其子類來創(chuàng)建對象。
抽象方法就是以abstract修飾的方法,這種方法只聲明返回的數(shù)據(jù)類
型、方法名稱和所需的參數(shù),沒有方法體,也就是說抽象方法只須要聲明
而不須要實現(xiàn)。當(dāng)一個方法為抽象方法時,意味著這個方法必需被子類的
方法所重寫,否則其子類的方法照舊是abstract的。
4、接口是什么,以與它的用處體現(xiàn)在哪幾個方面。
解答:接口是抽象類的一種,只包含常量和方法的定義,而沒有變量
和方法的實現(xiàn),且其方法都是抽象方法。它的用處體現(xiàn)在下面幾個方面:
1)通過接口實現(xiàn)不相關(guān)類的相同行為,而無需考慮這些類之間的關(guān)系。2)
通過接口指明多個類須要實現(xiàn)的方法。3)通過接口了解對象的交互界面,
而無需了解對象所對應(yīng)的類。
5、什么是接口,什么是抽象類,接口和抽象類的區(qū)分?
解答:
抽象類就是不能運用new方法進行實例化的類,即沒有具體實例對象
的類。抽象類有點類似“模板”的作用,目的是依據(jù)其格式來創(chuàng)建和修改
新的類。對象不能由抽象類干脆創(chuàng)建,只可以通過抽象類派生出新的子類,
再由其子類來創(chuàng)建對象。
接口是抽象類的一種特殊形式,只包含常量和方法的定義,而沒有變
量和方法的實現(xiàn),且其方法都是抽象方法。
抽象層次不同,抽象類是對類的抽象,而接口是對行為的抽象。
跨域?qū)哟尾煌?,抽象類的跨域是具有相像的類,接口可以跨域不同?/p>
類。
設(shè)計層次不同,抽象類是自底向上抽象而來,子類抽象父類接口是自
頂向下設(shè)計的,無需知道子類。
6、接口的用處體現(xiàn)哪幾個方面?
解答:
通過接口實現(xiàn)不相關(guān)類的相同行為,而無需考慮這些類之間的關(guān)系。
通過接口指明多個類須要實現(xiàn)的方法。
通過接口了解對象的交互界面,而無需了解對象所對應(yīng)的類。
7、接口與實現(xiàn)類(具體類)關(guān)系:
解答:
多個無關(guān)的類可以實現(xiàn)同一個接口。
一個類可以實現(xiàn)多個無關(guān)的接口。
與繼承關(guān)系類似,接口與實現(xiàn)類之間存在多態(tài)性。
14、子類與父類的繼承關(guān)系中,什么是屬性隱藏?什么是方法重寫?
解答:隱藏是指當(dāng)父類和子類有相同名字的屬性的時候,父類的同名
變量形式上不行見了。但是實際還是存在的。
重寫是針對方法的,通常是父類的方法在子類中重新寫過。當(dāng)執(zhí)行子
類的實例得時候,實際運行的是子類的方法。在子類里面可以通過
super.method()來顯式的訪問。
15、子類會繼承父類的全部方法和屬性么?
解答:在同一個包中除private聲明外的方法都可以繼承。不在同一
個包中,只繼承protected和public聲明的方法。(太難了)
16、Java中的方法重寫(Overriding)和方法重載(Overloading)分別
是什么?
解答:Java中的方法重載發(fā)生在同一個類里面兩個或者是多個方法的
方法名相同但是參數(shù)不同的狀況。與此相對,方法重寫是說子類重新定義
了父類的方法。子類中重寫的方法和父類中被重寫的方法必需有相同的方
法名,參數(shù)列表和返回類型,只是方法體不同。
4.4綜合題
1、寫出一個類People,并由該類做基類派生出子類Employee和
Teachero其中People類具有name、age兩個愛惜成員變量,分別為
String類型、整型,且具有公有的getAge成員函數(shù),用于返回age變量
的值。Employee類具有愛惜成員變量empno為String類型,Teacher
類有teano為String類型和zc成員變量為String類型。
解答:
//People類:
publicabstractclassPeople(
protectedStringname;
protectedintage;
publicintgetAge(){
returnage;
}
}
//Employee類:
publicclassEmployeeextendsPeople{
protectedStringempno;
}
“Teacher類:
publicclassTeacherextendsPeople{
protectedStringteano;
protectedStringzc;
2、定義一個新的類Student類,繼承Person類。要求:
1)增加“school”屬性為String類型。
2)重載Student類的構(gòu)造方法,Student(Stringn,String1,String
school)o
3)重寫Person類的info。方法,增加school信息。
classPerson{
privateStringname;
privateStringlocation;
Person(Stringname,Stringlocation){
=name;
this.location=location;
}
publicStringinfo(){
return"name:"+name+"location:"+location;
解答:
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 消殺防護課程設(shè)計
- 早教中心食物課程設(shè)計
- 照顧小羊幼兒園課程設(shè)計
- 油庫課程設(shè)計書封面圖
- 2024年度大棚建筑與農(nóng)業(yè)科技服務(wù)合同3篇
- 2025年山東淄博市市屬事業(yè)單位青年人才招聘357人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東濟寧市屬事業(yè)單位第四批“優(yōu)才”擬聘用人員(四)管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東濟南市槐蔭區(qū)事業(yè)單位招考工作人員管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東濟南(大峰山)黨性教育基地服務(wù)中心招聘3人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東棗莊薛城區(qū)事業(yè)單位招考總(1)管理單位筆試遴選500模擬題附帶答案詳解
- 【9物(人)期末】安慶市宿松縣2023-2024學(xué)年九年級上學(xué)期期末考試物理試題
- 2024年未成年子女房產(chǎn)贈與協(xié)議
- 2024-2030年中國共模電感環(huán)形鐵芯行業(yè)發(fā)展?fàn)顩r規(guī)劃分析報告
- 2024年度上海船舶分包建造合同2篇
- 2024年家屬租房子合同范文
- 眼視光學(xué)理論和方法知到智慧樹章節(jié)測試課后答案2024年秋山東中醫(yī)藥大學(xué)
- 【教師成長案例】教師成長:數(shù)字化浪潮中的破繭之路
- 2024年下半年山東煙臺開發(fā)區(qū)國企業(yè)招聘130人易考易錯模擬試題(共500題)試卷后附參考答案
- 2024年財務(wù)部年度工作總結(jié)(7篇)
- 基于2024年度人工智能的智能客服系統(tǒng)開發(fā)合同
- 全媒體運營師試題庫(含答案)
評論
0/150
提交評論