版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2009-2010第二學(xué)期《java程序設(shè)計(jì)》復(fù)習(xí)題
可能題型:選擇、填空、簡答、判斷
練習(xí)一(兩類java程序)...................................................1
練習(xí)二(數(shù)據(jù)類型)........................................................2
練習(xí)三(運(yùn)算符與表達(dá)式)..................................................3
練習(xí)四(條件,分支語句)...................................................4
練習(xí)五(條件,分支語句)...................................................5
練習(xí)六(控制結(jié)構(gòu)與循環(huán)體內(nèi)的跳轉(zhuǎn)).......................................8
練習(xí)七(方法)..........................................................8
練習(xí)八(方法重載)........................................................9
練習(xí)九(數(shù)組)............................................................9
練習(xí)十(繼承:類,屬性和方法的繼承,屬性隱藏和方法覆蓋,構(gòu)造函數(shù)的繼承,父類
對象和子類對象的關(guān)系)..................................................11
練習(xí)十一(多態(tài):抽象類和抽象方法,最終類和最終方法,接口)...............16
練習(xí)十二(異常處理)...................................................17
練習(xí)十三(雜).........................................................19
練習(xí)十四(i。)........................................................22
練習(xí)十五(線程).......................................................23
練習(xí)十六(網(wǎng)絡(luò)).......................................................25
練習(xí)十七(gui)........................................................27
練習(xí)十八(雜).........................................................28
練習(xí)一(兩類java程序)
LJava是低級語言還是高級語言(高級)
2.Java是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言嗎(是)
3.Java是編譯型的計(jì)算機(jī)語言還是解釋型的計(jì)算機(jī)語言(解釋型)
4.Java語言的程序設(shè)計(jì)包含哪3個步驟(編寫源程序,編譯源程序,解釋運(yùn)行編譯后形成的
字節(jié)碼文件)
5.Java源程序文件的后綴是什么(.java)
6.Java源程序經(jīng)編譯后生成什么文件其后綴是什么(字節(jié)碼文件,.class)
7.Java程序有哪兩類(java應(yīng)用程序,java小程序)
8.類的定義由哪兩部分組成(類頭和類體)
9.方法的定義由哪兩部分組成(方法頭和方法體)
10.一個Java源程序中可以有多個公共類(主類)嗎(不能)
11.一個Java源程序中可以有多個類嗎若有多個類時(shí),程序文件名是什么(能,與公共類名
一致)
12.Java應(yīng)用程序(Application)的主類的類頭應(yīng)如何寫(publicclass類名),它的主
方法的方法頭應(yīng)如何寫(publicstaticvoidmain(Stringargs[])),Application的入
口在哪(main())
13.Java應(yīng)用程序(Application)的主類中一定要有主方法(main)嗎?是
14.Java中的的字符使用什么編碼(unicode)
15.在Java語言中,將源代碼翻譯成時(shí)產(chǎn)生的錯誤稱為編譯錯誤,而將程序在
運(yùn)行中產(chǎn)生的錯誤稱為運(yùn)行錯誤.(字節(jié)碼)
16.為了使包sos中的所有類在當(dāng)前程序中可見,可以使用的語句是(A).
A)importsos.*;B)packagesos.*;
C)sosimport;D)sospackage;
17.下面關(guān)于封裝性的描述中,錯誤的是(d)。
A.封裝體包含屬性和行為B.被封裝的某些信息在外不可見
C.封裝提高了可重用性D.封裝體中的屬性和行為的訪問權(quán)限相同
練習(xí)二(數(shù)據(jù)類型)
1.以下的選項(xiàng)中能正確表示Java語言中的一個整型常量的是(B).
A)12.B)-20C)1,000D)456
2.下列的變量定義中,錯誤的是(A).
A)int6_a;B)floata;
C)inti=Integer.MAX_VALUE;D)staticinti=100;
3.下列的變量定義中,錯誤的是(A).
A)inta;b;B)floata,bl=l.23f;
C)charchl='d',ch2=';D)publicinti=100,j=2,k;
4.下列的變量定義中,錯誤的是(D).
A)int_a=123;B)longj=12345678900L;
C)intm,n;D)statici=100;
5.下列的變量定義中,正確的是(D).
A)booleanbl="true";B)floatx=6.6;
C)bytei=200;D)doubley;
6.以下字符常量中不合法的是(C).
A)'B)'C)"k"D)"整'
7.以下的選項(xiàng)中能正確表示Java語言中的一個整型常量的是(A).
A)Integer.MAX_VALUEB)8.8FC)2.0E16D)true
8.下列最終屬性(常量)i的定義中,正確的是(C).
A)staticfinaldoublei;B)abstractfinalinti=8;C)finaldoublei=3.14159;
D)floati=l.2f;
9.以下的選項(xiàng)中能正確表示Java語言中的一個double型常量的是(C).
A)Float.MIN_VALUEB)1.8e-6FC)2.0D)'abcf'
10.以下的變量定義語句中,合法的是(C).
A)float$_*5=3.4F;B)bytebl=15678;
0doublea=Double.MAX_VALUE;D)int_abc_=3721L;
11.以下字符常量中不合法的是(C).
A)'I'B)C)"\n"D)'我'
12.Java語言中的浮點(diǎn)型數(shù)據(jù)根據(jù)數(shù)據(jù)存儲長度和數(shù)值精度的不同,進(jìn)一步分為哪兩種具體
類型,各占二進(jìn)制的多少位(float32位,double64位)
13.Java的復(fù)合數(shù)據(jù)類型有那幾種(類,數(shù)組和接口)
14.在Java語言中,邏輯常量只有哪兩個值(true,false)
15.字符串"\'a\'"的長度是幾(即有幾個字符)(3個字符)
16.Java語言中的邏輯變量可以和整型變量相互強(qiáng)制轉(zhuǎn)換嗎(不能)
17.在程序中可對用final修飾的變量的值進(jìn)行更改嗎(不能)
18.Java的字符類型采用的是Unicode編碼方案,每個Unicode碼占用(B)個比特位。
A、8B、16C、32D、64
練習(xí)三(運(yùn)算符與表達(dá)式)
1.已定義a為int類型的變量.以下選項(xiàng)中,合法的賦值語句是(B).
A)a+1—2;B)a+=a*6;C)a=8.8f;D)inta=8;
2.以下選項(xiàng)中的變量都已正確定義,不合法的表達(dá)式是(C).
A)a>=4==b3;B)t=!false;C)t=(true|false);D)t=(2==3)true:false;
3.以下變量均已正確定義并賦值,下面符合Java語言語法的賦值語句是(A).
A)m=n>=5;B)m=k%c=h+y;
C)j=t+%100;D)j=y>2=x+3;
4.設(shè)i,j,k,m為已賦值的int型變量,下列表達(dá)式的結(jié)果屬于邏輯值的是(A).
A)i==k&j+k>=mB)i+kC)m++D)m=i+j
5.變量a定義為int類型.以下選項(xiàng)中,合法的賦值語句是(B).
A)a+1==2;B)a+=l;C)a=8.8f;D)a=newint(8);
6.若有定義intx=13;則執(zhí)行完語句x%=8;后,x的值是(C).
A)0B)1C)5D)8
7.以下選項(xiàng)中,合法的賦值語句是(B).
A)a==1;B)++i;C)a=a+1=5;D)!(++a!=b--);
8.若所用變量都已正確定義,以下選項(xiàng)中,非法的表達(dá)式是(0.
A)a!=4|b==1B)'a'%3C)'a'=1/2D)'A'+32
9.若有定義inta=2;則執(zhí)行完語句a-=a*a;后,a的值是(C).
A)0B)4C)-2D)-4
10.現(xiàn)有一變量聲明為booleanaa;下面賦值語句中正確的是(A).
A)aa=false;B)aa=False;C)aa="true";D)aa=0;
11.下列程序段執(zhí)行后b3的結(jié)果是(D).
booleanbl=true,b2=true,b3;
b3=!blbl:!b2;
A)0B)1C)trueD)false
12.設(shè)有定義inti=123:longj=456;下面賦值不正確的語句是(D).
A)j=i;B)j=(long)i;C)i=(int)j;D)i=j;
13.若以下變量均已正確定義并賦值,下面符合Java語言語法的語句是(A).
A)b=a!=7;B)a=7+b+c=9;C)i=12.3*%4;D)a=a+7=c+b;
14.下列程序段執(zhí)行后t5的結(jié)果是(B).
inttl=9,t2=11,t3=8;
intt4,t5;
t4=tl>t2tl:t2+tl;
t5=t4>t3t4:t3;
A)8B)20C)11D)9
15.執(zhí)行下面程序段后,b,x,y的值分別是(D).
intx=6,y=8;
booleanb;
b=x>y&&++x==一y;
A)true,6,8B)false,7,7C)true,7,7D)false,6,8
16.執(zhí)行下列程序段后,m,X,y的值分別是(B).
intx=2,y=4;
booleanm;
m=++x>y一;
A)true,2,4B)false,3,3C)true,3,3D)false,2,4
17.下面語句序列執(zhí)行后,a的值是(D).
inta=13;a%=a/5;
A)3B)13C)169D)1
18.設(shè)x,y,max,min均為int型變量,x,y已賦值.用三目條件運(yùn)算符求x,y的最大值和最小
值,并分別賦給變量max和min,這兩個賦值語句分別是和.(max=x>yx:y;
min=x〈y?x:y;)
練習(xí)四(條件,分支語句)
1,下列語句序列執(zhí)行后,m的值是(C).
inta=10,b=3,m=5;
if(a==b)m+=a;elsem=++a*m;
A)15B)50C)55D)5
2.下列語句序列執(zhí)行后,x的值是(d).
inta=2,b=4,x=5;
if(a<—b)x*=a;
A)5B)20C)15D)10
3.下列語句序列執(zhí)行后,k的值是(C).
inti=10,j=18,k=30;
switch(j-i)
{case8:k++;
case9:k+=2;
case10:k+=3;
default:k/=j;
}
A)31B)32C)2D)33
4.若a和b均是整型變量并已正確賦值,正確的switch語句是(D).
A)switch(a+b);{......}B)switch(a+b*3.0){......}
C)switcha{......}D)switch(a%b){......}
5.下列語句序列執(zhí)行后,r的值是(0.
charch='8';intr=10;
switch(ch+1)
case'T:r=r+3
case'8':r=r+5
case'9':r=r+6break;
default:r=r+8;
A)13B)15C)16D)18
6.設(shè)int型變量a,b,float型變量x,y,char型變量ch均已正確定義并賦值,正確的
switch語句是(B).
A)switch(x+y){.....}B)switch(ch+1){.....}
C)switchch{.....}D)switch(a+b);{.....}
7.下列語句序列執(zhí)行后,k的值是(D).
intx=6,y=10,k=5;
switch(x%y)
(
case0:k=x*y;
case6:k=x/y;
case12:k=x-y;
default:k=x*y-x;
)
A)60B)5C)0D)54
8.下列語句序列執(zhí)行后,r的值是(B).
charch='A';intr=6;
switch(ch+5)
(
case'A':r=r+3;
case'B>:r=r+5;
case'C':r-=6;break;
default:r/=2;
)
A)11B)3C)2D)9
9.如果變量x已正確定義,寫出實(shí)現(xiàn)以下功能的語句:如果變量x是偶數(shù),則將其增加2.
(if(x%2==0)x+=2;)
10.設(shè)chi,ch2是char型變量:
if(chi二二'a')
{if(ch2==,b,)
System.out.printchi=\'a\',ch2=\'b\'〃);
)
else
System,out.printchl!=\'a\'〃);
System,out.printin(,zend");
問題:1)若執(zhí)行前chi的值為‘a(chǎn)',ch2的值為‘c'該程序段輸出是什么(end)
2)若執(zhí)行前chi的值為‘w',ch2的值為‘b'該程序段輸出是什么(chi!='a'end)
3)若執(zhí)行前chi的值為‘a(chǎn)',ch2的值為‘b'該程序段輸出是什么
(chi='a,ch2='b'end)
練習(xí)五(條件,分支語句)
1.下列語句序列執(zhí)行后,j的值是(A).
intj=l;
for(inti=5;i>0;i-=2)j*=i;
A)15B)1C)60D)0
2.以下由for語句構(gòu)成的循環(huán)執(zhí)行的次數(shù)是(B).
for(inti=0;true;i++);
A)有語法錯,不能執(zhí)行B)無限次
C)執(zhí)行1次D)一次也不執(zhí)行
3.下面語句執(zhí)行后,i的值是(B).
for(inti=0,j=l;j<5;j+=3)i=i+j;
A)4B)5C)6D)7
4.下列語句序列執(zhí)行后,k的值是(D).
intj=8,k=15;
for(inti=2;i!=j;i++){j-=2;k++;}
A)18B)15C)16D)17
5.下列語句序列執(zhí)行后,k的值是(B).
intm=3,n=6,k=0;
while((m++)<(一n))++k;
A)0B)1C)2D)3
6.下列語句序列執(zhí)行后,i的值是(D).
ints=l,i=l;
while(i<=4){s*=i;i++;}
A)6B)4C)24D)5
7.下列語句序列執(zhí)行后,j的值是(C).
intj=8,i=6;
while(i>4)i-=2;
---j;
A)5B)6C)7D)8
8.下列語句序列執(zhí)行后,j的值是(B).
intj=9,i=6;
while(i->3)一j;
A)5B)6C)7D)8
9.下列語句序列執(zhí)行后,j的值是(D).
intj=3,i=2;
while(—i!=i/j)j-j+2;
A)2B)4C)6D)5
10.若有循環(huán):
intx=5,y=20;
do{y-=x;x+=2;}while(x<Y);
則循環(huán)體將被執(zhí)行(A).
A)2次B)1次C)0次D)3次
11.下列語句序列執(zhí)行后,i的值是(D).
inti=10;
do{i/=2;}while(i->1);
A)1B)502D)-1
12.下列語句序列執(zhí)行后,i的值是(C).
inti=10;
do{i-=2;}while(i>6);
A)10B)8C)6D)4
13.下列語句序列執(zhí)行后,i的值是(D).
inti=16;
do{i/=2;}while(i>3);
A)16B)8C)4D)2
14.以下由do-while語句構(gòu)成的循環(huán)執(zhí)行的次數(shù)是(B).
intk=0;
do{++k;}while(k<1);
A)一次也不執(zhí)行B)執(zhí)行1次C)無限次D)有語法錯,不能執(zhí)行
15.若有循環(huán):
intx=5,y=20;
do{y-=x;x++;}while(++x<-y);
則循環(huán)體將被執(zhí)行(C).
A)0次B)1次C)2次D)3次
16.下面是一個java應(yīng)用程序(Application),它的功能是在屏幕上輸出26個小寫英文字母,
其中每個字母相隔一個制表符,請完成程序填空.
(class(c++)+〃\t〃或(c++)+'\t')
publicClassi
(
publicstaticvoidmain(Stringargs[])
(
charc='a';
for(inti=l;i<=26;i++)
{System,out.print();}
)
)
17.下面是一個java應(yīng)用程序(Application),它的功能是計(jì)算s=l+2+3+...+10,請完成程
序填空.(classi)
publicClassi
(
publicstaticvoidmain(Stringargs[])
(
ints=0;
for(inti=l;i<=10;i++)
(
s+=______;
)
System.out.println(〃s=〃+s);
)
)
18.下面是一個javaApplication的主類的定義,其功能是輸出乘法口訣表第一歹U,請完成
程序填空.(i<=9j*i)
importjava.io.
publicclassMyClass
publicstaticvoidmain(String[]args)
(
intj=l;
for(inti=l;;i++)
(
System,out.printin(i+“*"+j+"="+);
}
})
練習(xí)六(控制結(jié)構(gòu)與循環(huán)體內(nèi)的跳轉(zhuǎn))
1.結(jié)構(gòu)化程序設(shè)計(jì)的三種基本流程控制結(jié)構(gòu)是(略)
2.以下語句中能構(gòu)成分支的語句是(B).
A)for語句B)if語句
C)continue語句D)方法調(diào)用語句
3.以下語句中能構(gòu)成多分支的語句是(C).
A)for語句B)while語句
C)switch語句D)do-while語句
4.以下語句中能構(gòu)成多分支的語句是(C).
A)for語句B)while語句
C)if—else語句的嵌套D}do_while語句
5.以下語句中是循環(huán)語句的是(D).
A)break語句B)switch語句C)if語句D)do-while語句
6.以下語句中不能構(gòu)成循環(huán)的語句是(C).
A)for語句B)while語句C)switch語句D)do—while語句
7.能從循環(huán)語句的循環(huán)體中跳出的語句是(B).
A)for語句B)break語句C)continue語句D)return語句
8.閱讀程序后回答問題.
publicclassContinueTest
{publicstaticvoidmain(Stringargs[])
{charc='i';
for(intn=6;n<11;n++)
{if(n==8)continue;
System,out.print("\t"+(c++));
}}}
問題:1)程序的輸出結(jié)果是什么(ijk1)
2)若將if中的continue語句替換為break語句,輸出結(jié)果是什么
(iJ)
練習(xí)七(方法)
1.以下方法m的功能是求兩參數(shù)之積的整數(shù)部分.(return(int)(x*y))
intm(floatx,floaty){;}
2.方法可以沒有返回值嗎可以有多個返回值嗎(可以;不能)
3.一個方法如果沒有返回值,方法頭定義中的返回值類型為何(void)
4.一個方法或一個復(fù)合語句內(nèi)定義的變量是否可以在方法外或復(fù)合語句外使用這種變量
稱為什么變量(不能;局部變量)
5.采用的程序設(shè)計(jì)原則,使程序結(jié)構(gòu)清晰簡單,設(shè)計(jì)容易,有助于軟件可靠性的提
高.(模塊化)
6.下面方法的功能是判斷一個整數(shù)是否為偶數(shù),將程序補(bǔ)充完整.(booleantrue)
publicisEven(inta)
{if(a%2==0)
return;
else
returnfalse;
}
練習(xí)八(方法重載)
1.同一個類中多個方法具有相同的方法名,不同的稱為方法的重載.(參數(shù)列
表)
2.在某個類中存在一個方法:voidgetSort(intx),以下能作為這個方法的重載的聲明的是
(0.
A)publicgetSort(floatx)B)intgetSort(inty)
C)doublegetSort(intx,inty)D)voidget(intx,inty)
3.在某個類中存在一個方法:voidsort(intx),以下不能作為這個方法的重載的聲明的是
(B).
A)publicfloatsort(floatx)B)intsort(inty)
C)doublesort(intx,inty)D)voidsort(doubley)
4.為了區(qū)分類中重載的同名的不同方法,要求(A).
A)采用不同的形式參數(shù)列表B)返回值類型不同
0調(diào)用時(shí)用類名或?qū)ο竺銮熬YD)參數(shù)名不同
5.重載的方法可以通過它們的返回值類型的不同來區(qū)分嗎(不能)
6.編譯程序如何區(qū)分重載方法的調(diào)用(根據(jù)參數(shù)列表不同來區(qū)分)
練習(xí)九(數(shù)組)
1.在一個應(yīng)用程序中定義了數(shù)組a:int[]a={l,2,3,4,5,6,7,8,9,10};,為了打印輸出數(shù)
組a的最后一個數(shù)組元素,下面正確的代碼是(B).
A)System,out.println(a[10]);B)System,out.printin(a[9]);
C)System,out.printin(a[a.length]);D)System,out.println(a(8));
2.下面關(guān)于數(shù)組定義語句不正確的是(D).
A)int[]al,a2;B)inta0[]={11,2,30,84,5};
C)doublet]d=newdouble[8];D)floatf[]=new{2.Of,3.5f,5.6f,7.8f};
3.設(shè)有定義語句inta[]={3,9,-9,-2,8};則以下對此語句的敘述錯誤的是(C).
A)a數(shù)組有5個元素B)數(shù)組中的每個元素是整型
0a的值為3D)對數(shù)組元素的引用a[a.length-1]是合法的
4.設(shè)有定義語句inta[]={66,88,99};則以下對此語句的敘述錯誤的是(C).
A)定義了一個名為a的一維數(shù)組B)a數(shù)組有3個元素
0a數(shù)組的元素的下標(biāo)為1?3D)數(shù)組中的每個元素是整型
5.為了定義三個整型數(shù)組al,a2,a3,下面聲明正確的語句是(B).
A)intArray[]al,a2;inta3[]={1,2,3,4,5};
B)int[]al,a2;inta3[]={1,2,3,4,5};
C)intal,a2[];inta3={1,2,3,4,5):
D)int[]al,a2;inta3=(l,2,3,4,5);
6.設(shè)i,j為int型變量名,a為int型數(shù)組名,以下選項(xiàng)中,正確的賦值語句是(B).
A)i=i+2B)a[0]=7;C)i++——j;D)a(0)=66;
7.若已定義byte[]x={l1,22,33,-66};
其中0WkW3,則對x數(shù)組元素錯誤的引用是(C).
A)x[5-3]B)x[k]C)x[k+5]D)x[0]
8.設(shè)有定義int[]a=newint[4]a的所有數(shù)組元素是(B).
A)aO,al,a2,a3B)a[0],a[l],a[2],a[3]
Oa[l],a[2],a[2],a[4]D)a[0],a[l],a[2],a[3],a[4]
9.設(shè)有整型數(shù)組的定義:inta[]=newint[8]則a.length的值為.(8)
10.定義數(shù)組,需要完成以下三個步驟,即:,—和.(聲明數(shù)組;創(chuàng)建
數(shù)組空間;初始化)
11.在Java語言中,所有的數(shù)組都有一個屬性,這個屬性存儲了該數(shù)組的元素的
個數(shù)(數(shù)組長度).(length)
12.若有定義int[]a=newint[8];則a的數(shù)組元素中第7個元素和第8個元素的下標(biāo)分
別是一和—.(67)
13.定義一個整型數(shù)組y,它有5個元素分別是1,2,3,4,5.用一個語句實(shí)現(xiàn)對數(shù)組y的聲明,
創(chuàng)建和賦值:;.
(inty[]={l,2,3,4,5);)
14.數(shù)組一定占用連續(xù)的內(nèi)存空間嗎(是)
15.下面是一個類的定義,請將其補(bǔ)充完整.(classstatic)
___________A
{Strings;
inta=666;
A(Stringsi){s=sl;}
staticintgeta(){returna;}
)
22.閱讀程序,回答問題.
publicclassTest52
(
Stringstaticstrl="Hello,Javaworld!\t”;
Stringstaticstr2="Hello,students!
publicstaticvoidmain(Stringargs口)
{System,out.print(strl);System,out.println(str2);}
問題:1)這是哪種形式的java程序(java應(yīng)用程序)
2)程序的輸出是什么輸出的結(jié)果在Applet窗口中嗎
(Hello,Javaworld!Hello,students!不在)
練習(xí)十(繼承:類,屬性和方法的繼承,屬性隱藏和方法覆蓋,構(gòu)造函數(shù)的繼承,父類對象和
子類對象的關(guān)系)
1.Java語言的類間的繼承關(guān)系是(B).
A)多重的B)單重的C)線程的D)不能繼承
2.以下關(guān)于Java語言繼承的說法正確的是(C).
A)Java中的類可以有多個直接父類B)抽象類不能有子類
Ojava中的接口支持多繼承D)最終類可以作為其它類的父類
3.下面是有關(guān)子類繼承父類構(gòu)造函數(shù)的描述,其中正確的是(B).
A)如果子類沒有定義構(gòu)造函數(shù),則子類無構(gòu)造函數(shù)
B)子類構(gòu)造函數(shù)必須通過super關(guān)鍵字調(diào)用父類的構(gòu)造函數(shù)
C)子類必須通過this關(guān)鍵字調(diào)用父類的構(gòu)造函數(shù)
D)子類無法繼承父類的構(gòu)造函數(shù)
4.現(xiàn)有兩個類A,B,以下描述中表示B繼承自A的是(D).
A)classAextendsBB)classBimplementsA
C)classAimplementsBD)classBextendsA
5.子類可以繼承父類的成員(非私有).構(gòu)造函數(shù)也能被繼承和重載.
6.如果子類中的某個變量的變量名與它的父類中的某個變量完全一樣,則稱子類中的這個
變量________了父類的同名變量.(隱藏)
8.如果子類中的某個方法的名字,返回值類型和與它的父類中的某個方法完全一
樣,則稱子類中的這個方法覆蓋了父類的同名方法.(參數(shù)列表)
9.抽象,封裝和多態(tài)是Java語言的四大特性.(繼承)
11.Java僅支持類間的_重繼承.(單重)
12.子類的成員變量能與其父類的成員變量同名嗎(能)
13.什么是方法覆蓋(子類重新定義繼承自父類的同名方法,使之實(shí)現(xiàn)與父類方法不同的功
能;方法覆蓋要求子類方法頭定義必須與父類方法頭定義完全一樣.)
14.一個子類可以重新定義從父類那里繼承來的同名方法.但是,允許它們有不同類型的返
回值嗎(不能)
15.子類對象如何引用被它隱藏了的父類的屬性和調(diào)用被它覆蓋了的父類的方法(使用
super關(guān)鍵字做前綴)
16.子類的對象能直接向其父類對象賦值嗎反之呢子類對象一定是父類的對象嗎(能;不
能;是:)
18.java中,一個子類可以有多個父類嗎可以為一個(父)類定義多個子類嗎(不能;可以)
19.保留字this代表什么(this表示類當(dāng)前對象本身)
21.下面是一個類的定義,完成程序填空.(Youwritethis.x=x;)
publicclassYouwrite
(
intx;
(){x=0;}
Youwrite(intx)
}
22.現(xiàn)有類說明如下,請回答問題:
publicclassA
Stringstrl=,/Hello!\t〃;
Stringstr2=〃Howareyou〃;
publicStringtoString()
{returnstrl+str2;}
)
publicclassBextendsA
(
Stringstrl=〃\b\b,Bill.〃;
publicStringtoString()
{returnsuper,strl+strl;}
)
問題:
1)類A和類B是什么關(guān)系(繼承關(guān)系)
2)類A和類B都定義了strl屬性和方法toString(),這種現(xiàn)象分別稱為什么(屬性的隱
藏;方法的覆蓋)
3)若a是類A的對象,則a.toString()的返回值是什么
(Hello!Howareyou)
4)若b是類B的對象,則b.toString()的返回值是什么(Hello,Bill.)
23.現(xiàn)有一個類定義如下,請回答問題:
classEmployee
(
Stringname;
intage;
doublewage;
staticintNo=0;
Employee(Stringal,inta2,doublea3)
(
name=al;age=a2;wage=a3;
No++;
)
}
在使用該類時(shí),已使用下面語句生成了該類的對象:
Employeeel,e2;
el=newEmployee("王勁〃,26,6300);
e2=newEmployee(〃張山〃,30,3800);
問題:
l)e2.name,e2.age,e2.wage的值各是什么(張山;30;3800.0)
2)生成對象el,62后,el.No值為多少能否通過類名做前綴引用屬性No(2;能)
25.閱讀程序,回答問題.
publicclassInheritTestl
publicstaticvoidmain(String[]args)
Aaa;Bbb;
aa=newA();bb=newB();
aa.show();bb.show();
})
classA
(
inta=l;
doubled=2.0;
voidshow()
{System,out.printin(""ClassA:〃+〃\ta=〃+a+〃\td=〃+d);}
)
classBextendsA
(
floata=3.Of;
Stringd二〃Javaprogram./z;
intb=4;
voidshow()
(
System,out.printin(""ClassA:"+〃\ta=〃+super.a+“\td="+super.d);
super.show();
System,out.printin(""ClassB:"+〃\ta=〃+a+“\td="+d+〃\tb=〃+b);
})
問題:1)這是哪一類java程序(java應(yīng)用程序)
2)類A和類B是什么關(guān)系(類B是類A的子類)
3)按程序輸出的格式寫出程序運(yùn)行后的結(jié)果.
(程序運(yùn)行結(jié)果如下:
ClassA:a=ld=2.0
ClassA:a=ld=2.0
ClassA:a=ld=2.0
ClassB:a=3.0d=Javaprogram.b=4)
26.現(xiàn)有類說明如下,請回答問題:
classA
(
intx=10;
intgetA(){returnx;}
)
classBextendsA
{
intx=100;
intgetB(){returnx;)
)
問題:1)類B是否能繼承類A的屬性x(能)
2)若b是類B的對象,則b.getBO的返回值是什么(100)
3)若b是類B的對象,則b.getAO的返回值是什么(10)
4)類A和類B都定義了x屬性,這種現(xiàn)象稱為什么
(屬性的隱藏)
27.有如下源程序,請回答問題:
classA
{Strings="classA〃;}
classBextendsA
{Strings="classB〃;)
publicclassTypeConvert
(
publicstaticvoidmain(Stringargs[])
(
Bbl,b2=newB();
Aa1,a2;
al=(A)b2;
a2=b2;
System,out.println(al.s);
System,out.printin(a2.s);
bl=(B)al;
System,out.printin(bl.s);
System,out.printin(b2.s);
})
問題:該程序的四行輸出各是什么
(classA
classA
classB
classB)
28.現(xiàn)有類說明如下,請回答問題:
publicclassA
{
intx=888;
Stringstr=,,Ilike:〃;
publicStringtoString()
{returnstr+x;}
)
publicclassBextendsA
(
Stringx="java";
publicStringtoString()
{returnstr+x+〃and〃+super.x;}}
問題:1)類A和類B是什么關(guān)系(類B是類A的子類)
2)類A和類B都定義了方法toString(),這種現(xiàn)象稱為什么(方法的覆蓋)
3)若a是類A的對象,則a.toString()的返回值是什么(Ilike:888)
4)若b是類B的對象,則b.toString()的返回值是什么
Ilike:javaand888
29下面的是關(guān)于類及其修飾符的一些描述,不正確的是:(b)o
A、abstract類只能用來派生子類,不能用來創(chuàng)建abstract類的對象。
B、final類不但可以用來派生子類,也可以用來創(chuàng)建final類的對象。
C^abstract不能與final同時(shí)修飾一個類。
D、abstract方法必須在abstract類中聲明,但abstract類定義中可以沒
有abstract方法。
30.設(shè)有下面兩個賦值語句:
a二Integer,parselnt(^1024^);
b=Integer.valueOf(^1024,?).intValue();
下述說法正確的是(d)o
A、a是整數(shù)類型變量,b是整數(shù)類對象。
B、a是整數(shù)類對象,b是整數(shù)類型變量。
C、a和b都是整數(shù)類對象并且它們的值相等。
D、a和b都是整數(shù)類型變量并且它們的值相等。
31.classX{
Yb=newY();
X()(
System,out.print(〃X〃);
)
)
classY{
Y(){
System,out.print(〃Y〃);
)
publicclassZextendsX{
Yy=newY();
z(){
System,out.print(〃Z〃);
)
publicstaticvoidmain(String[]args){
newZ();
})
A.Z
B.YZ
C.XYZ
D.YXYZ
答案D
32.6.關(guān)于實(shí)例方法和類方法,以下描述正確的是:(D)
A.實(shí)例方法只能訪問實(shí)例變量
B.類方法既可以訪問類變量,也可以訪問實(shí)例變量
C.類方法只能通過類名來調(diào)用
D.實(shí)例方法只能通過對象來調(diào)用
33.下列關(guān)于繼承的說法哪個是正確的?B
A.子類只繼承父類public方法和屬性;
B.子類繼承父類的非私有屬性和方法;
C.子類只繼承父類的方法,而不繼承父類的屬性;’
D.子類將繼承父類的所有的屬性和方法。
34.你想要增加一個功能給wait。方法。你將如何來做?d
a.重載wait。方法。
b.覆蓋wait。方法。
c.不能增加功能,因?yàn)樗荗bject類的成員,而Object類是所有類的基類。
d.不能增加任何功能,因?yàn)閣ait。已經(jīng)被最終定義。
練習(xí)十一(多態(tài):抽象類和抽象方法,最終類和最終方法,接口)
1.下列選項(xiàng)中,用于定義接口的關(guān)鍵字是(A).
A)interfaceB)implementsC)abstractD)class
2.下列選項(xiàng)中,用于實(shí)現(xiàn)接口的關(guān)鍵字是(B).
A)interfaceB)implementsC)abstractD)class
3.抽象方法只有方法頭,沒有.(方法體)
4.Java語言的接口是特殊的類,其中包含____常量和方法.(static(靜態(tài));
abstract(抽象))
5.接口中所有屬性均為,和的.(public,static,final)
6.用那個關(guān)鍵字定義抽象類和抽象方法(abstract)
7.抽象類只能做為父類嗎(也可以包含抽象方法,做為抽象子類)
8.可以定義抽象類的對象嗎(不能)
9.抽象方法能被繼承嗎(能)
10.抽象方法只能存在于抽象類中嗎(是;也可以存在在接口中)
11.聲明為final的方法能在子類中重新定義嗎(不能)
12用那個關(guān)鍵字定義最終類和最終方法(final)
13.最終類能做為父類嗎(不能)
14.最終方法能被繼承嗎(不能)
15.最終方法只能存在于最終類中嗎(不一定)
16.聲明為static和private的方法是final的嗎(不是)
17.接口中所有方法均為抽象方法嗎(是)
18.接口中所有方法均為public的嗎(是)
19.abstract和final能同時(shí)修飾一個類嗎(不能)
20.下面是定義一個接口ITF的程序,完成程序填空.
(interfaceabstract)
publicITF
publicstaticfinaldoublePI=Math.PI;
public______doublearea(doublea,doubleb);
21.下面是定義一個接口A的程序,完成程序填空.(final)
publicinterfaceA
(
publicstaticdoublePI=3.14159;
publicabstractdoublearea(doublea,doubleb)
}
22.在使用interface聲明一個接口時(shí),只可以使用(d)修飾符修飾該接口。
A、privateB、protected
C、privateprotectedD、public
23.關(guān)于接口的定義和實(shí)現(xiàn),以下描述正確的是:(A)
A.接口定義中的方法都只有定義沒有實(shí)現(xiàn)
B.接口定義中的變量都必須寫明final和static
C.如果一個接口由多個類來實(shí)現(xiàn),則這些類在實(shí)現(xiàn)該接口中的方法時(shí)應(yīng)采用統(tǒng)一的代
碼
D.如果一個類實(shí)現(xiàn)一個接口,則必須實(shí)現(xiàn)該接口中的所有方法,但方法未必聲明為
public.
24.下列關(guān)于抽象類的說法四個是正確的?C
A.某個抽象類的父類是抽象類,則這個子類必須重載父類的所有抽象方法;
B.接口和抽象類是同一回事;
C.絕對不能用抽象類去創(chuàng)建對象;
D.抽象類中不可以有非抽象方法。
練習(xí)十二(異常處理)
1、異常是一種運(yùn)行時(shí)錯誤,在java中,異常是以對象的方法表示的,任何異常對象都是
類或其子類的對象。(Throwable)
2、java把它能夠識別的異常分為兩大類:檢查的和非檢查的異常。非檢查的異常是Error
類和類的實(shí)例,它代表程序不必處理嚴(yán)重系統(tǒng)錯誤;檢查異常是
—類的子類,它代表程序應(yīng)該而且能夠處理的錯誤。(RuntimeException>
Exception)
3、Java的異常處理模型以3種操作為基礎(chǔ):聲明異常、拋出異常和捕捉異常.當(dāng)程序語句
導(dǎo)致錯誤時(shí),包含語句的方法將創(chuàng)建異常對象并把它傳遞到系統(tǒng),這個過程稱為
,查找異常處理程序的過程稱為捕捉異常。(拋出異常)
4>java中的異常處理通過5個關(guān)鍵字來實(shí)現(xiàn):它們是try、catch、throw、throws和finally。
進(jìn)行異常監(jiān)測的代碼要放在try子句內(nèi):捕獲異常需要使用子句:在方法中
宣布可能產(chǎn)生的異常應(yīng)使用關(guān)鍵字。(catch、throws)
5、下列說法正確的是(D)
A.try-catch-finally代碼塊中的finally子句只有在try子句和catch子句都執(zhí)行執(zhí)行
之后才執(zhí)行
B.如果try代碼塊中出現(xiàn)了異常并被catch子句捕捉到,那么finally子句就不再執(zhí)行了
C.只有try代碼塊中沒有出現(xiàn)異常時(shí),finally子句才會執(zhí)行
D.不管try代碼塊中是否出現(xiàn)異常,或者catch子句是否捕捉到異常,finally子句都將
被執(zhí)行
6、關(guān)于異常的應(yīng)用,下列說法恰當(dāng)?shù)氖牵˙)
A.在java中,使用異常很方便、很有效,因而,只要能使用異常的地方應(yīng)盡量使用異常
B.在程序中過多的使用異常,會使程序的執(zhí)行效率降低
C.異常產(chǎn)生后,我們只需捕獲它,至于是否對異常給與處理,無所謂
D.Java中的異常全部都被預(yù)先定義好了,程序員無需自行定義異常類
7、關(guān)于異常的捕獲和處理,下列說法不正確的是(D)
A.與一個try相關(guān)的catch語句可以有多個,但一個catch子句只能捕獲一種類型的異常
B.由內(nèi)部try代碼塊產(chǎn)生的異常如果沒有被與該try代碼塊相關(guān)的catch捕獲,或者被
JVM捕獲和處理
C.捕獲資料異常的catch子句必須出現(xiàn)在捕獲超類異常的catch子句的前面
D.在一個try子句中產(chǎn)生的異常,必須由該try子句相關(guān)的catch子句捕獲和處理,否則,
就會造成程序非正常終止。
8、當(dāng)方法遇到異常又不知如何處理時(shí),下列C做法是正確的。
A、捕獲異常B、拋出異常C、聲明異常D、嵌套異常
9、下列常見的系統(tǒng)定義的異常中,哪個是數(shù)組越界異常?a
A)ArrayIndexOutOfBoundsException
B)lOException
C)NullPointerException
D)ArithmeticException
10.publicclassThrowsDemo{
staticvoidthrowMethod(){
System,out.printin("InsidethrowMethod.");
thrownewIllegalAccessException(z/demo/z);
)
publicstaticvoidmain(Stringargs[]){
try(
throwMethod();
}catch(IllegalAccessExceptione){
System,out.printin(Z/Caught"+e);
)
)
}
A.編譯錯B.運(yùn)行錯C.編譯成功,但是沒有輸出結(jié)果D.以上都不是
答案:A
11.如果一個程序段中有多個catch,則程序會按如下哪種情況執(zhí)行?C
A找到適合的例外類型后繼續(xù)執(zhí)行后面的catch.
B找到每個符合條件的catch都執(zhí)行一次。
C找到適合的例外類型后就不再執(zhí)行后面的catcho
D對每個catch都執(zhí)行一次。
12.下列代碼行在執(zhí)行時(shí)會出現(xiàn)一個運(yùn)行時(shí)錯誤ArrayOutOfBoundsException,同時(shí)程序的
執(zhí)行終止。
cstObjects[ctr].displayDetails();
要避免上面提到的運(yùn)行時(shí)錯誤你應(yīng)該采取下列哪一個行動?d
a.在finally塊中寫入代碼。
b.使用throw聲明來發(fā)出異常警報(bào)ArrayOutOfBoundsException并且在catch塊中捕獲
同
一個異常。
c.在try塊中寫入代碼并且在finally塊中捕獲異常ArrayOutofBoundsExceptiono
d.在try塊中寫入代碼并且在catch塊中捕獲異常ArrayOutofBoundsExceptiono
練習(xí)十三(雜)
一、選擇題。
2.main方法是JavaApplication程序執(zhí)行的入口點(diǎn),關(guān)于main方法的方法頭以下
哪項(xiàng)是合法的()?
A、publicstaticvoidmain()
publicstaticvoidmain(Stringargs[])
C>publicstaticintmain(String[]arg)
D、publicvoidmain(Stringarg[])
答:B
3.為AB類的一個無形式參數(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025招投標(biāo)工作計(jì)劃
- 智能小車行業(yè)相關(guān)投資計(jì)劃提議
- 特種電線相關(guān)行業(yè)投資方案
- 工業(yè)淀粉相關(guān)項(xiàng)目投資計(jì)劃書范本
- 2025年年級教師工作計(jì)劃范文
- Unit3 Topic2. 說課稿 -2024-2025學(xué)年仁愛科普版英語八年級上冊
- 數(shù)字電視調(diào)制器相關(guān)項(xiàng)目投資計(jì)劃書
- 2025年鞋服市場營銷工作計(jì)劃
- 2025幼兒園工作計(jì)劃年度計(jì)劃
- 2025年少先隊(duì)大隊(duì)工作計(jì)劃范文
- 小學(xué)一年級數(shù)學(xué)20以內(nèi)的口算題(可直接打印A4)
- 腫瘤放射治療體位固定技術(shù)
- 監(jiān)理報(bào)告范本
- 店鋪交割合同范例
- 新生兒心臟病護(hù)理查房
- 規(guī)劃設(shè)計(jì)行業(yè)數(shù)字化轉(zhuǎn)型趨勢
- 物業(yè)年終總結(jié)匯報(bào)工作
- 金色簡約蛇年年終總結(jié)匯報(bào)模板
- 醫(yī)院住院病歷質(zhì)量檢查評分表(評分標(biāo)準(zhǔn))
- 12.1 擁有積極的人生態(tài)度(教學(xué)設(shè)計(jì))2024七年級道德與法治上冊
- 視聽說課程(《走遍美國》)教學(xué)方案
評論
0/150
提交評論