Java語言程序設(shè)計考試題庫及答案二_第1頁
Java語言程序設(shè)計考試題庫及答案二_第2頁
Java語言程序設(shè)計考試題庫及答案二_第3頁
Java語言程序設(shè)計考試題庫及答案二_第4頁
Java語言程序設(shè)計考試題庫及答案二_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Java語言程序設(shè)計期末復(fù)習(xí)綜合練習(xí)題(帶答案)

一、選擇題。

2.main方法是JavaApplication程序執(zhí)行的入口點(diǎn),關(guān)于main方法的方法頭以下哪項

是合法的()?

A、publicstaticvoidmain()

B、publicstaticvoidmain(Stringargs[])

C、publicstaticintmain(String[]arg)

D、publicvoidmain(Stringarg[])

答:B

4.下列哪個是合法的Java標(biāo)識符?()

A、Tree&GlassesB、FirstJavaApplet

C、_$theLastOneD、273.5

答:B、C

5.JavaApplication源程序的主類是指包含有()方法的類。

A、main方法B、loSlring方法

C、init方法D、actionPerfromed方法

答:A

6.Java的字符類型采用的是Unicode編碼方案,每個Unicode碼占用()個比特

位。

A、8B、16C、32D、64

答:B

7.設(shè)a=8,則表達(dá)式a?>2的值是()。

A>1B、2C、3D、4

答:B

8.若a的值為3時,下列程序段被執(zhí)行后,c的值是多少?()

c=1;

if(a>0)if(a>3)c=2;elsec=3;elsec=4;

A、1B、2C、3I)、4

答:C

9.在編寫JavaApplication程序時,若需要使用到標(biāo)準(zhǔn)輸入輸出語句,必須在程序的開

頭寫上()語句。

A、importjava.awt.*;B、importjava.applet.Applet;

C>importjava.io.*;D、importjava.awt.Graphics;

答:C

10.對于構(gòu)造函數(shù),下列敘述正確的是()o

A、構(gòu)造函數(shù)是類的一種特殊函數(shù),它的方法名必須與類名相同。

B、構(gòu)造函數(shù)的返回類型只能是void型。

C、構(gòu)造函數(shù)的主要作用是完成對類的對象的初始化工作。

D、一般在創(chuàng)建新對象時,系統(tǒng)會自動調(diào)用構(gòu)造函數(shù)。

答:ACD

11.下面的是關(guān)于類及其修飾符的一些描述,正確的是:()。

A、abstract類只能用來派生子類,不能用來創(chuàng)建abstract類的對象。

B、final類不但可以用來派生子類,也可以用來創(chuàng)建final類的對象。

C>abstract不能與final同時修飾一個類。

D、abstract方法必須在abstract類中聲明,但abstract類定義中可以沒

有abstract方法。

答:ACD

13.若在某一個類定義中定義有如下的方法:abstractvoidperformDial();

該方法屬于()。

A、本地方法B、最終方法C、解態(tài)方法D、抽象方法

答:D

14.下列關(guān)于靜態(tài)初始化器的敘述中,哪一個是正確的?()

A、靜態(tài)初始化器是在構(gòu)造函數(shù)之前加上static修飾符。

B、靜態(tài)初始化器是對類自身進(jìn)行初始化。

C、靜態(tài)初始化器在同一個類中只能有一個。

D、靜態(tài)初始化器是在其所屬的類加載內(nèi)存時由系統(tǒng)自動調(diào)用執(zhí)行。

答:BD

15.不使用static修飾符限定的方法稱為對象(或?qū)嵗┓椒?,下列哪一個說法是正確

的?()

A、實(shí)例方法可以直接調(diào)用父類的實(shí)例方法。

B、實(shí)例方法可以直接調(diào)用父類的類方法。

C、實(shí)例方法可以直接調(diào)用其他類的實(shí)例方法.

D、實(shí)例方法可以直接調(diào)用本類的類方法。

答:BD

16.設(shè)有下面兩個類的定義:

classPerson{classStudentextendsPerson{

longid;//身份證號intscore;//入學(xué)總分

Stringname;//姓名intgetScore(){

)returnscore;

)

)

問:類Person和類Student的關(guān)系是()。

A、包含關(guān)系B、繼承關(guān)系

C、關(guān)聯(lián)關(guān)系D、無關(guān)系,上述類定義有語法錯誤

答:B、

17.設(shè)有下面的兩個類定義:

classAA{

voidShow(){System.out.printin("我喜歡Java!");

)

classBBextendsAA{

voidShowO{System,out.printin("我喜歡C++!”);

則順序執(zhí)行如下語句后輸出結(jié)果為:()

AAa;BBb;

a.Show();b.Show();

A、我喜歡Java!B、我喜歡C++!

我喜歡C++!我喜歡Java!

C、我喜歡Java!D、我喜歡C++!

我喜歡Java!我喜歡C+刊

答:A

19.在Java中,一個類可同時定義許多同名的方法,這些方法的形式參數(shù)的個數(shù)、類型

或順序各不相同,傳回的值也可以不相同。這種面向?qū)ο蟪绦蛱匦苑Q為()。

A、隱臧B、覆蓋C、重載D、Java不支持此特性

答:C

20.對于構(gòu)造函數(shù),下列敘述正確的是()。

A、構(gòu)造函數(shù)也允許重載。

B、子類無條件地繼承父類的無參構(gòu)造函數(shù)。

C、子類不允許調(diào)用父類的構(gòu)造函數(shù)。

D、在同一個類中定義的重載構(gòu)造函數(shù)可以相互調(diào)用。

答:ABD

22.設(shè)有下面兩個賦值語句:

a=Integer,parselnt(,<1024M);

b=Integer.valueOf("1024").intValue();

下述說法正確的是()。

A、a是整數(shù)類型變量,b是整數(shù)類對象。

B、a是整數(shù)類對象,b是整數(shù)類型變量。

C、a和b都是整數(shù)類對象并且它們的值相等。

D、a和b都是整數(shù)類型變量并且它們的值相等。

答:D

24.下面的語句的作用是:()。

VectorMyVector=newVector(100,50);

A、創(chuàng)建一個數(shù)組類對象MyVector,有100個元素的空間,每個元素的初值為50。

B、創(chuàng)建一個向量類對象MyVector,有100個元素的空間,每個元素的初值為50。

C、創(chuàng)建一個數(shù)組類對象MyVector,有100個元素的空間,若空間使用完時,以50

個元素空間單位遞增。

D、創(chuàng)建一個向量類對象MyVector,有100個元素的空間,若空間使用完時,以50

個元素空間單位遞增。

答:D

25.在Java中,存放字符串常量的對象屬于()類對象。

A、CharacterB、String

C、StringBufferD、Vector

答:B

31.對于子類的構(gòu)造函數(shù)說明,下列敘述中不正確的是()。

A、子類無條件地繼承父類的無參構(gòu)造函數(shù)。

B、子類可以在自己的構(gòu)造函數(shù)中使用super關(guān)鍵字來調(diào)用父類的含參數(shù)構(gòu)造函

數(shù),但這個調(diào)用語句必須是子類構(gòu)造函數(shù)的第一個可執(zhí)行語句。

C、在創(chuàng)建子類的對象時,將先執(zhí)行繼承自父類的無參構(gòu)造函數(shù),然后再執(zhí)行

自己的構(gòu)造函數(shù)。

D、子類不但可以繼承父類的無參構(gòu)造函數(shù),也可以繼承父類的有參構(gòu)造函數(shù)。

答:D

二、填空題。

2.設(shè)x=2,則表達(dá)式(x++)*3的值是。

答:6

3.若x=5,y=10,則x>y和x<=y的邏輯值分別為和。

答:false、true

4.順序執(zhí)行以下兩個語句的輸出結(jié)果是:。

Strings="我喜歡學(xué)習(xí)Java!”;

System.out.println(s.length());

答:10

5.據(jù)程序的構(gòu)成和運(yùn)行環(huán)境的不同,Java源程序分為兩大類:程

序和程序O

答:JavaApplication、JavaApplet(或Application、Applet)

6.如果一個Java源程序文件中定義有4個類,則使用Sun公司的JDK編譯器javac編

譯該源程序文件將產(chǎn)生_______個文件名與類名相同而擴(kuò)展名為的字節(jié)碼文件。

答:4、class

7.開發(fā)與運(yùn)行Java程序需要經(jīng)過的三個主要步驟為、

和O

答:編輯源程序、編譯生成字節(jié)碼、解釋運(yùn)行字節(jié)碼

9.一個JavaApplication源程序文件名為MyJavaApplication.java,如果使用Sun公司

的Java開發(fā)工具JDK編譯該源程序文件并使用其虛擬機(jī)運(yùn)算這個程序的字節(jié)碼文件,應(yīng)該

順序執(zhí)行如下兩個命令:

答:javacMyJavaApplication.java、javaMyJavaApplication

10.在Java的基本數(shù)據(jù)類型中,char型采用Unicode編碼方案,每個Unicode碼字符占

用字節(jié)內(nèi)存空間,這樣,無論是中文字符還是英文字符,每個都是占用

字節(jié)內(nèi)存空間。

答:2、2

11.在Java程序中定義的類有兩種成員:、。

答:域成員、方法成員

13.創(chuàng)建一個名為MyPackage的包的語句是,

該語句應(yīng)該放在程序的位置為:?

答:packageMyPackage;應(yīng)該在程序第一句。

14.方法是一種僅有方法頭,沒有具體方法體和操作實(shí)現(xiàn)的方法,該方法必須

在抽象類之中定義。方法是不能被當(dāng)前類的子類重新定義的方法。

答:抽象方法、最終方法(或abstract方法、final方法)

15.形式參數(shù)指的是方法被時的參數(shù)行,實(shí)際參數(shù)是方法被

時所傳遞進(jìn)去的變量或值。

答:定義、調(diào)用

16.多態(tài)是指,在Java中有

兩種多態(tài),一種是使用方法的實(shí)現(xiàn)多態(tài),另一種是使用方法的實(shí)

現(xiàn)多態(tài)。

答:一個程序中有多個同名的不同方法覆蓋重載

17.在Java程序中,通過類的定義只能實(shí)現(xiàn)_________重繼承,但通過接口的定義可

以實(shí)現(xiàn)_____________重繼承關(guān)系。

答:單、多

19.字符串分為兩大類,一類是字符串常量,使用類的對象表示;另一

類是字符串變量,使用類的對象表示。

答:String、StringBuffer

20.設(shè)有數(shù)組定義:intMyIntArray[]={10,20,30,40,50,60,70,80,90,100};

則執(zhí)行以下幾個語句后的輸出結(jié)果是o

ints=0;

for(inti=0;i<MylntArray.length;i++)

s+=MyIntArray[i];

System.out.println(s);

答:550

三、寫出下列程序完成的功能。

1.publicclassSum

{publicstaticvoidmain(Stringargs[])

{doublesum=0.0;

for(inti=1;i<=100;i++)

sum+=1.0/(double)i;

System.out.println(nsum=H+sum);

)

)

答:計算1/1+1/2+1/3+...+1/100的值。

2.importjava.io.*;

publicclassReverse

{publicstaticvoidmain(Stringargs[])

{inti,n=10;

inta[]=newint[10];

for(i=0;i<n;i++)

try(

BufferedReaderbr=newBufferedReader(

newInputStreamReader(System.in));

a[i]=Integer.parseInt(br.readLine());//輸入一個整數(shù)

}catch(lOExceptione){};

for(i=n—1;i>=0;i-----)

System.out.print(a[i]+"");

System.out.println();

答:從標(biāo)準(zhǔn)輸入(即鍵盤)讀入10個整數(shù)存入整型數(shù)組a中,然后逆序輸出這10個整數(shù)。

4.importjava.io.*;

publicclassClassi

(

publicstaticvoidmain(Stringargs[]){

inti,Max,Min;

inta[]={12,67,8,98,23,56,124,55,99,100);

Max=Min=a[0];

for(i=1;i<a.length;i++){

if(a[i]<Min)Min=a[i];

if(a[i]>Max)Max=a[i];

)

System.out.println(Max+“"+Min);

System.out.println();

)

)

答:在數(shù)組中查找并輸出最大值和最小值。

5.publicclassABC

(

publicstaticvoidmain(Stringargs[]){

inti,j;

inta[]={12,67,8,98,23,56,124,55,99,100);

for(i=0;i<a.length-1;i++){

intk=i;

for(j=i;j<a.length;j++)

if(aU]<a[k])k=j;

inttemp=a[i];

a[i]=a[k];

a[k]=temp;

}

for(i=0;i<a.length;i++)

System.out.print(a[i]+"”);

System.out.println();

)

)

答:使用選擇法對數(shù)組a的數(shù)據(jù)進(jìn)行升序排序,然后輸出排序后的結(jié)果。

6.importjava.io.*;

publicclassClassi{

publicstaticvoidmain(Stringargs[])

(

FactN=newFact(4);

System,out.println(N.fact());

)

}

classFact{

intn;

Fact(intnn){n=nn;}

intfact(){

inti,f=1;

for(i=l;i<=n;i++)

f=f*i;

returnf;

)

)

答:定義一個計算n!的類Fact,然后主類中創(chuàng)建一個對象求解4!的值。

8.importjava.io.*;

publicclassClassi{

publicstaticvoidmain(Stringargs[])

{SubClassa=newSubClass(10,3);

System.out.println(a.exp());

)

)

classSuperClass{

floatx;

intn;

SuperClass(floatxx,intnn){x=xx;n=nn;}

)

classSubClassextendsSuperClass{

SubClass(floatxx,intnn){super(xx,nn);}

floatexp(){

floats=1;

for(inti=1;i<=n;i++)s=s*x;

returns;

)

)

答:定義一個計算X”的類,然后用該類求1()3的值。

10.importjava.io.*;

publicclassabc

{publicstaticvoidmain(Stringargs[])

{SubClasssb=newSubClass();

System.out.println(sb.max());

classSuperClass

{inta=10,b=20;}

classSubClassextendsSuperClass

{intmax(){return((a>b)?a:b);}}

答:求兩個數(shù)的最大值。

四、寫出下面程序的運(yùn)行結(jié)果。

1.importjava.io.*;

publicclassabc

{publicstaticvoidmain(Stringargs[])

{ABs=newAB(',Hello!,',',IloveJAVA/');

System.out.printIn(s.toString());

)

}

classAB{

Stringsi;

Strings2;

AB(Stringstrl,Stringstr2)

{si=strl;s2=str2;}

publicStringtoString()

{returnsl+s2;}

答:Hello!IloveJAVA.

2.importjava.io.*;

publicclassabc

(

publicstaticvoidmain(Stringargs[])

{inti,s=0;

inta[]={10,20,30,40,50,60,70,80,90);

for(i=0;i<a.length;i++)

if(a[i]%3==0)s+=a[i];

System.out.printin(',s=',+s);

)

)

答:s=180

3.importjava.io.*;

publicclassabc

publicstaticvoidmain(Stringargs[])

{SubSubClassx=newSubSubClass(10,20,30);

x.show();

)

)

classSuperClass

{inta,b;

SuperClass(intaa,intbb)

{a=aa;b=bb;}

voidshow()

{System.out.println("a=n+a4-n\nb="+b);}

)

classSubClassextendsSuperClass

{intc;

SubClass(intaa,intbb,intcc)

{super(aa,bb);

c=cc;

)

)

classSubSubClassextendsSubClass

{inta;

SubSubClass(intaa,intbb,intcc)

{super(aa,bb,cc);

a=aa+bb+cc;

)

voidshow()

{System.out.println(',a=,,+a+,,\nb=,'+b+,,\nc=',+c);}

)

答:a=60

b=20

c=30

4.importjava.io.*;

publicclassabc

(

publicstaticvoidmain(Stringargs[])

(

Stringsi="Hello!”;

Strings2=newString(^^World!^');

System.out.println(s1.concat(s2));

)

)

答:HelloiWorld!

5.importjava.io.*;

publicclassABC

publicstaticvoidmain(Stringargs[])

{inti;

inta[]={11,22,33,44,55,66,77,88,99);

for(i=0;i<=a.length/2;i++)

System.out.print(a[i]+a[a.length-i-l]+"'*);

System.out.println();

)

)

答:110110110110110

6.importjava.io.*;

classParent

(

voidprintMe()

(

System,out.printin("parent");

)

)

classChildextendsParent

(

voidprintMe()

{

System,out.println(〃child〃);

)

voidprintAll()

(

super.printMe();

this.printMe();

printMe();

)

)

publicclassClassi

(

publicstaticvoidmain(Stringargs[])

(

ChildmyC=newChild();

myC.printAll();

)

)

答:parent

child

child

五、使用Java語言編寫程序。

1.編寫一個字符界面的JavaApplication程序,接受用戶從鍵盤輸入的一個正整數(shù),

然后統(tǒng)計并輸出從1到這個正整數(shù)的累加和。

答:參考程序如下:

importjava.io.*;

publicclassSUM

(

publicstaticvoidmain(String[]args)

inti,n=-l,sum=0;

while(n<l)

try(

BufferedReaderbr=

newBufteredReader(newInputStreamReader(System.in));

n=Integer.parseInt(br.readLine());

}catch(lOExceptione){);

for(i=1;i<=n;i++)sum+=i;

System.out.println(sum);

2.編寫一個字符界面的JavaApplication程序,接受用戶輸入的10個整數(shù),并輸出這

10個整數(shù)的最大值和最小值。

答:參考程序如下:

importjava.util.*;

publicclassMaxMin{

publicstaticvoidmain(String[]args){

Scannerinput=newScanner(System.in);

inta[]=newint[10];

intmax;

intmin;

for(inti=0;i<=9;i++)

a[i]=input.nextlnt();

max=min=a[0];

for(inti=l;i<=9;i++)

{if(a[i]>=max)max=a[i];

if(a[i]<=min)min=a[i];}

System.out.prinlln("max="+max+“\n"+"min="+min);

4.編寫一個學(xué)生類Student,要求:

(1)學(xué)生類Student屬性有:

id:long型,代表學(xué)號

name:String類對象,代表姓名

age:int型,代表年齡

sex:boolen型,代表性別(其中:true表示男,false表示女)

phone:String類對象,代表聯(lián)系電話

(2)學(xué)生類Sludem的方法有:

Student(longi,Stringn,inta,booleans,longp)

:有參構(gòu)造函數(shù),形參表中的參數(shù)分別初始化學(xué)號、姓名、

年齡、性別和聯(lián)系電話。

intgetAge()():獲取年齡作為方法的返回值。

booleangetSex()():獲取性別作為方法的返回值。

longgetPhone():獲取聯(lián)系電話作為方法的返回值。

publicStringtoString():以姓名:聯(lián)系電話的形式作為方法的返回值。

答:參考程序段如下:

classStudent{

longid;

Stringname;

intage;

booleansex;

longphone;

Student(longitStringn,inta,booleans,longp){

id=i;

name=n;

age=a;

sex=s;

phone=p;

)

intgetAge(){returnage;}

booleangetSex(){returnsex;}

longgetPhone(){returnphone;}

publicStringtoString(){returnname+":n+phone;}

)

Java語言程序設(shè)計試題(帶答案)

課程代碼:04747

一、單項選擇題(本大題共1()小題,每小題1分,共10分)

在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代碼填寫在題后的括

號內(nèi)。錯選、多選或未選均無分。

1,下列字符組合不能作為Java整型常量的是()

A.078B.0x3ACB

C.5000D.Ox3ABe

2.以下程序代碼的輸出結(jié)果是()

intx=10;

while(x>7)

{System.out.print(n*n);x—;}

A**B***

C*D****

3.設(shè)類U聲明,及對象u和v的定義如下:

classU{

intx,inty;

U(inta,intb){x=a;y=b;}

voidcopy(Ua){x=a.x;y=a.y;}

}

Uu=newU(l,2),v=newU(2,3);

在以下供選擇的代碼中,可能引起系統(tǒng)回收內(nèi)存的是()

A.u.x=v.y;u.y=v.x;B.u=v;

C.u.copy(v);D.v.copy(u);

4.設(shè)有以下代碼:

Stringsl=n123H;

Strings2=n123n;

Strings3=newString。123”);

則表達(dá)式sl==s2和sl=s3的值分別是()

A.true,trueB.false,false

C.true,falseD.false,true

5.以下關(guān)于AWT與Swing之間關(guān)系的敘述,正確的是()

A.Swing是AWT的提高和擴(kuò)展

B.在寫GUI程序時,AWT和Swing不能同時使用

C.AWT和Swing在不同的平臺上都有相同的表示

D.AWT中的類是從Swing繼承的

6.在以下Swing組件中,能為它指定布局管理器的是()

A.JScrollBar對象B.JMenuBar對象

C.JComboBox對象D.JDialog對象

7.一般的繪圖程序要定義一個JPanel子類。在JPanel子類中還要重定義一個方法,在這

個方法中調(diào)用繪圖方法,繪制各種圖形。要重定義的方法是()

A.paint()B.paintComponent()

C.repaint()D.update()

8.用Runnable接口實(shí)現(xiàn)多線程的主要工作是()

A.聲明實(shí)現(xiàn)Runnable接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,讓線程調(diào)用start。方法。

B.聲明實(shí)現(xiàn)Runnable接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,在類內(nèi)聲明線程對象,在init()

方法中創(chuàng)建新線程,啟動新線程。

C.聲明實(shí)現(xiàn)Runnable接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,在類內(nèi)聲明線程對象,在Init()

方法或start。方法中創(chuàng)建新線程,在start。方法中啟動新線程。

D.聲明實(shí)現(xiàn)Runnable接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,在init()方法中創(chuàng)建新線程,在

start。方法中啟動新線程。

9.程序如果要按行輸入輸出文件的字符流,最合理的方法是采用()

A.BufferedReader類和BufferedWriter類

B.InputStream類和OutputStream類

C.FileReader類和FileWriter類

D.File_Reader類和File_Writer類

10.在編寫訪問數(shù)據(jù)庫的Java程序中,要用到DriverManager類。該類的作用是()

A.存儲查詢結(jié)果

B.處理與數(shù)據(jù)庫的連接

C.在指定的連接中處理SQL語句

D.處理驅(qū)動程序的加載和建立數(shù)據(jù)庫連接

二、填空題(本大題共10小題,每小題2分,共20分)

請在每小題的空格中填上正確答案。錯填、不填均無分。

11.Java程序的字節(jié)碼文件的擴(kuò)展名是。class

12.構(gòu)造一個Java表達(dá)式:y/x>5,并且x!=0。這個表達(dá)式是?y/x>5&&x!=0

13.在類聲明之前用修飾,聲明類是不能被再繼承的類,即它不能再有子類。

final

14.設(shè)有字符串定義:

Strings="ABCDABCD”;

則表達(dá)式s.indexOf("B")的值是。1

15.在實(shí)現(xiàn)接口ActionListener的方法actionPerformed()中,常用的有兩個獲得事件源的

方法,它們是getActionCommand。和。getSource()

16.使用單選按鈕的方法是將一些單選按鈕用對象分組,使同一組內(nèi)的單選按

鈕只允許一個被選中。ButtonGroup

17.在Java語言中,用類Font對象設(shè)置字型。如果要設(shè)置的字型是:細(xì)明體、正常風(fēng)格

(Font.PLAIN),12磅字號,構(gòu)造這樣要求的Font對象fnA的代碼是。Font

fnA=newFont(“細(xì)明體”,Font.PLAIN.12)

18.線程從阻塞狀態(tài)恢復(fù)到就緒狀態(tài),有三種途徑:自動恢復(fù)、用resume。方法恢復(fù)和用

方法恢復(fù)。notify?;騨otifyAll()

19.為普通的8位字節(jié)流文件讀和寫操作提供支持的類是oInputstream

OutputStream

20.Connection類是java.sql包中用于處理與數(shù)據(jù)庫連接的類。Connection對象是用來表

示的對象,Java程序?qū)?shù)據(jù)庫的操作都在這種對象上進(jìn)行。數(shù)據(jù)庫連接

三、簡答題(本大題共6小題,每小題3分,共18分)

21.請寫出表示year年是閏年的Java表達(dá)式。閏年的條件是:每4年一個閏年,但每100

年少一個閏年,每400年又增加一個閏年。(year%4==0)&&(year%4!=0)||(year%400=

=0)

22.請寫出在類的方法的定義之前,加上修飾字public、private的區(qū)別。

Public修飾的方法為公用方法,任何類的方法都可以訪問他

Private修飾的方法,本類內(nèi)部可以訪問

23.請寫出將文本區(qū)text放置于滾動面板jsp,并將滾動面板jsp添加到JFrame窗口

myFrame的Java語句。

TextAreatext=newTextArea();

JScrollPanejsp=newJScrollPane(text);

myFrame.getContentPane().add(jsp);

24.要用Graphics2D類的方法畫一個圖形,首先要把參數(shù)對象g強(qiáng)制轉(zhuǎn)換成Graphics2D

對象;然后,用圖形類提供的靜態(tài)方法Double。創(chuàng)建一個圖形對象;最后,以圖形對象

為參數(shù)調(diào)用Graphics2D對象的draw。方法繪制這個圖形。請寫出用這樣的方法繪制一條

線段的程序段,線段的兩個端點(diǎn)分別是(10.0,10.0)和(30.0,30.0),

Graphics2Dg2d=(Graphics2D)g;

Line2Dline=newLine2D.Double(10,20,30,40);

G2d.draw(line)

25.請寫出字符流數(shù)據(jù)與字節(jié)流數(shù)據(jù)的區(qū)別。(P.175)

26.請寫出URLConnection類在編寫Java網(wǎng)絡(luò)應(yīng)用程序中的作用。

URLConnection類完成流對象和實(shí)現(xiàn)網(wǎng)絡(luò)連接

四、程序填空題(本大題共5小題,每小題4分,共20分)

27.方法intsigmaDigit(intn)的功能是求出十進(jìn)制整數(shù)n的各位數(shù)字之和。例如,n=1234,

該方法的返回值是10o

staticintsigmaDigit(intn)

{intsum=0,d;

while(n>0){

d=n%10;

;sum+=d

n/=10;

}

;returnsum

28.以下小應(yīng)用程序能響應(yīng)鼠標(biāo)按動的事件,當(dāng)鼠標(biāo)在正文區(qū)的某個位置被點(diǎn)擊時,就在

該位置顯示一個記號“x”,程序限制最多保留最新20個位置。

importjava.applet.*;importjava.awt.*;

importjavax.swing.*;importjava.awt.event.*;

classMyPanelextendsJPanel{

publicvoidprint(Graphicsg,intx,inty)(

g.setColor(Color.red);

g.drawLine(x-5,y-5,x+5,y+5);

g.drawLine(x+5,y-5,x-5,y+5);

)

}

classMyWindowextendsJFrameimplementsMouseListener{

finalintMaxMarks=20;

intcurrentMarks=0,markCount=0;

Pointmarks[]=newPoint[MaxMarks];

MyPanelpanel;

MyWindow(){

this.setLocation(100,100);

this.setSize(300,300);

Containercon=this.getContentPane();

panel=newMyPanel();con.add(panel);

(this);addMouseListener

this.setVisible(true);

)

publicvoidpaint(Graphicsg){

inti;

g.clearRect(0,0,this.getWidth(),this.getHeight());

for(i=0;i<markCount;i++){

(g,marks[i].x,marks[i].y);print

}

)

publicvoidmousePressed(MouseEvente){}

publicvoidmouseReleased(MouseEvente){}

publicvoidmouseEntered(MouseEvente){}

publicvoidmouseExited(MouseEvente){}

publicvoidmouseClicked(MouseEvente){

marks[currentMarks]=newPoint(e.getX(),e.getY());

if(markCount<MaxMarks)markCount++;

currentMarks=(currentMarks+1)%MaxMarks;

repaint();

}

}

publicclassClassiextendsApplet{

publicvoidinit(){

MyWindowmyWndow=newMyWindow();

)

)

29.這是一個處理選擇項目事件的子窗口類。窗口中有2個選擇框,當(dāng)選中某個選擇框時,

文本框?qū)@示選擇框?qū)?yīng)的信息。

classMyWindowextendsJFrameimplementsItemListener{

JTextFieldtext;

JCheckBoxboxl,box2;

MyWindow(Strings){

;super(s)

Containercon=this.getContentPane();

this.setLocation(100,100);this.setSize(400,200);

text=newJTextField(lO);

boxl=newJCheckBox(nA計算機(jī)”,false);

box2=newJCheckBox(nB計算機(jī)”,false);

con.setLayout(newGridLayout(3,2));

con.add(newJLabel("計算機(jī)產(chǎn)品介紹”,JLabeLCENTER));

add(newJLabeI("計算機(jī)2選1*JLabeLCENTER));

con.add(box1);con.add(box2);con.add(text);

boxl.addltemListener(this);

box2.addltemListener(this);

this.setVisible(true);this.pack();

publicvoiditemStateChanged(e){ItemEvent

if(e.get!temSelectable()==boxl){

text.setText("A公司生產(chǎn)”);

}elseif(e.getItemSelectable()==box2){

text.setText("B公司生產(chǎn))

)

)

)

30.這是一個播放幻燈片的小應(yīng)用程序中的paint。方法。設(shè)幻燈片已由小應(yīng)用程序的init()

方法裝入內(nèi)存,并存放于mylmage數(shù)組中,幻燈片的張數(shù)放于變量num中,paint。方法

要播放的幻燈片號是intcurrentimage=0;

finalintnum=30;

Image[]mylmage=new[num];Image

publicvoidpaint(Graphicsg){

if((mylmage|currentlmage|)!=null)

g.(mylmage[currentlmage],10,10,drawlmage

mylmage[currentimage].getWidth(this),

mylmage[currentimage].getHeight(this),this);

)

31.以下定義的類ShareData用于管理多個線程共享數(shù)據(jù)vaL為了保證對共享數(shù)據(jù)val

修改的完整性,線程對val的操作需要互斥,類ShareData中定義的方法modiData。就是

供共享val的線程修改val的方法。程序共有20個線程共享vah有些減少val,有些增

加val。

publicclassClassi{

publicstaticvoidmain(Stringargs[]){

ShareDatamrc二newShareData(50);

Thread[|aThreadArray=newThread[20|;

System.out.println(H\t剛開始的值是:“+mrc.getVal());

System.out.println(n\t多個線程正在工作,請稍等!)

for(inti=0;i<20;i++){

intd=i%2==0?50:-30;

aThreadArray[i]=newThread(newMyMultiThreadClass(mrc,d));

aThreadArray|i].start();

)

WhileLoop:〃等待所有線程結(jié)束

while(true){

for(inti=0;i<20;i++)

if(aThreadArray[i].())continueWhileLoop;

isAlive()

break;

)

System.out.println(H\t最后的結(jié)果是:"+mrc.getVal());

}

)

classMyMultiThreadClassimplementsRunnable{

ShareDataUseinteger;intdelta;

MyMultiThreadClass(ShareDatamrc,intd){

Useinteger=mrc;delta=d;

)

publicvoidrun(){

fbr(inti=0;i<1000;i++){

Uselnteger.modiData(delta);

try{Thread.sleep(10);〃做一些其他的處理

}catch(InterruptedExceptione){}

)

)

}

classShareData{

intval;

ShareData(intinitValue){val=initValue;}

intgetVal(){returnval;}

privatevoidputVal(intv){val=v;}

voidmodiData(intd){synchronized

putVal(getVal()+d);

}

)

五、程序分析題(本大題共5小題,每小題4分,共20分)

32.閱讀下列程序,請寫出該程序的輸出結(jié)果。

classA{

intx,y;

A(inta,intb){

x=a;y=b;

)

)

publicclasssample{

publicstaticvoidmain(Stringargs[]){

Apl,p2;

p2=newA(12,15);

pl=p2;p2.x++;

System.o

溫馨提示

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

最新文檔

評論

0/150

提交評論