華聯(lián)學(xué)院《Java語(yǔ)言程序設(shè)計(jì)》理論與上機(jī)復(fù)習(xí)題及部分答案_第1頁(yè)
華聯(lián)學(xué)院《Java語(yǔ)言程序設(shè)計(jì)》理論與上機(jī)復(fù)習(xí)題及部分答案_第2頁(yè)
華聯(lián)學(xué)院《Java語(yǔ)言程序設(shè)計(jì)》理論與上機(jī)復(fù)習(xí)題及部分答案_第3頁(yè)
華聯(lián)學(xué)院《Java語(yǔ)言程序設(shè)計(jì)》理論與上機(jī)復(fù)習(xí)題及部分答案_第4頁(yè)
華聯(lián)學(xué)院《Java語(yǔ)言程序設(shè)計(jì)》理論與上機(jī)復(fù)習(xí)題及部分答案_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《Java語(yǔ)言程序設(shè)計(jì)》理論與上機(jī)復(fù)習(xí)題及部分答案

第1章Java語(yǔ)言基礎(chǔ)

一.概念復(fù)習(xí)和鞏固(請(qǐng)?jiān)谡n后和上機(jī)前完成下面的練習(xí))

1.下面說(shuō)法正確的是(C)。

A)Java程序的源文件名稱(chēng)與主類(lèi)(公共類(lèi))的名稱(chēng)相同,后綴可以是java或txt等。

B)JDK的編譯命令是java。

C)一個(gè)java源程序編譯后可能產(chǎn)生幾個(gè)字節(jié)碼文件。

D)在命令行運(yùn)行編譯好的字節(jié)碼文件,只需在命令行直接鍵入程序名即可運(yùn)行該程序。

2.下面的說(shuō)法正確的是(ABCD)。

A)Java語(yǔ)言是面向?qū)ο蟮?、解釋?zhí)行的網(wǎng)絡(luò)編程語(yǔ)言。

B)Java語(yǔ)言具有可移植性,是與平臺(tái)無(wú)關(guān)的編程語(yǔ)言。

C)Java語(yǔ)言可對(duì)內(nèi)存垃圾自動(dòng)收集。

D)Java語(yǔ)言編寫(xiě)的程序雖然是“一次編譯,到處運(yùn)行”,但必須要java的運(yùn)行環(huán)境。

3.下面main()方法的定義哪些是正確的(ACD)?

A)publicstaticvoidmain(Stringargs[]){}

B)publicstaticvoidmain(String[]){}

C)publicstaticvoidmain(String[]args){}

D)publicstaticvoidmain(String[]x){}

4.用于定義數(shù)據(jù)簡(jiǎn)單類(lèi)型的一組關(guān)鍵字是(B)。

A)class,float,main,public

B)float,boolean,int,long

C)char,extends,float,double

D)int,long,float,import

5.以下的變量定義中,合法的語(yǔ)句是(B)。

A)float1_variable=3.4;B)intabc_=21;

C)doublea=1+4e2.5;D)shortdo=15;

6.定義變量如下:

inti=18;

longL=5;

floatf=9.8f;

doubled=1.2;

Strings="123";

以下賦值語(yǔ)句正確的是(ABD)。

A)s=s+i;B)f=L+i;C)L=f+i;D)s=s+i+f+d;

7.以下語(yǔ)句輸出的結(jié)果是(B)

Stringstr="123";

intx=4,y=5;

str=str+(x+y);

System.out.println(str);

A)1239B)12345C)會(huì)產(chǎn)生編譯錯(cuò)誤D)123+4+5

8.以下語(yǔ)句中沒(méi)有編譯錯(cuò)誤或警告提示信息的是(B)?

A)byteb=256;B)doubled=89L;C)charc="a";D)shorts=8.6f;

9.下面的程序輸出結(jié)果是:1+2=3,請(qǐng)將程序補(bǔ)充完整。

publicclassApp2{

publicstaticvoidmain(Stringargs[]) {

intx=1,y=2;

System.out.println(______________);

}

}

答案:x+"+"+y+"="+(x+y)

10.閱讀下面的程序,回答問(wèn)題。

程序如下:

publicclassApp1{

publicstaticvoidmain(Stringargs[]){

charch='\n';

System.out.print("Thefirstsnowcame,"+ch+"Howbeautifulitwas!");

}

}

(1)這是哪一類(lèi)java程序?

(2)寫(xiě)出保存該文件的文件名及后綴名?

(3)在JDK下編譯該文件的命令是什么?編譯后形成什么文件?

(4)在JDK下如何運(yùn)行該程序?程序運(yùn)行后輸出的結(jié)果如何?

10.答案:

(1)Java應(yīng)用程序(JavaApplication);

(2)App1.java;

(3)在命令行用javacApp1.java編譯該程序。

編譯后形成App1.class的字節(jié)碼文件;

(4)在命令行鍵入javaApp1即可運(yùn)行該程序。

編程序運(yùn)行后輸出的結(jié)果為:

Thefirstsnowcame,

Howbeautifulitwas!

11.閱讀下面的程序,回答問(wèn)題。

importjava.applet.Applet;

importjava.awt.Graphics;

publicclassApplet1extendsApplet{

publicvoidpaint(Graphicsg){

g.drawString("Welcome",25,30);

g.drawString("to",85,30);

g.drawString("Java",25,50);

g.drawString("Programming!",55,50);

}

}

(1)這是哪一類(lèi)java程序?

(2)寫(xiě)出保存該文件的文件名及后綴名?

(3)在JDK下編譯該文件的命令是什么?編譯后形成什么文件?

(4)該程序能直接運(yùn)行嗎?寫(xiě)出嵌入該程序的字節(jié)碼文件的html文件,該html文件可以任意命名嗎?

(5)程序運(yùn)行后輸出幾行?寫(xiě)出輸出結(jié)果。

11.答案:

(1)Java小程序(JavaApplet)。

(2)Applet1.java

(3)在命令行用javacApplet1.java編譯該程序。編譯后形成Applet1.class的字節(jié)碼文件。

(4)不能,為了能使程序運(yùn)行,還需編寫(xiě)html文件,用<applet></applet>標(biāo)記符將編譯形成的字節(jié)碼文件嵌入到html文件中,然后通過(guò)瀏覽器運(yùn)行JavaApplet?;蛟诿钚型ㄟ^(guò)命令appletviewer運(yùn)行html文件。嵌入該程序的字節(jié)碼文件的html文件如下,該html文件可以任意命名(如命名為mypage.htm)

mypage.htm文件如下:

<HTML>

<HEAD><TITLE>我的網(wǎng)頁(yè)</TITLE></HEAD>

<BODY>

<APPLET code=Applet1.classwidth=300height=200></APPLET>

</BODY>

</HTML>

(5)程序運(yùn)行后輸出2行;輸出結(jié)果如下:

二.本章上機(jī)實(shí)驗(yàn)

上機(jī)實(shí)驗(yàn)一

1.編寫(xiě)Java應(yīng)用程序,定義byte、int、long、float、double、char和boolean等類(lèi)型的數(shù)據(jù)并用一個(gè)輸出語(yǔ)句輸出,要求每行輸出一個(gè)數(shù)據(jù)。

2.編寫(xiě)Java小應(yīng)用程序,輸出兩行字符串:“Java很有趣?!焙汀芭W(xué)習(xí)Java編程?!?,輸出的起點(diǎn)坐標(biāo)是(20,20),行距是50像素。

3.使用算術(shù)運(yùn)算符得到一個(gè)4位十進(jìn)制數(shù)的各位數(shù)字并輸出,然后輸出該數(shù)的逆序數(shù)和各位數(shù)字平方后相加的和。

4.編寫(xiě)Java小應(yīng)用程序,用三目條件運(yùn)算符求程序中給定的4個(gè)double數(shù)的最大值和最小值并輸出結(jié)果。

5.編寫(xiě)Java應(yīng)用程序,分別利用while循環(huán)、do…while循環(huán)和for循環(huán)求100~200的自然數(shù)的和。

6.編寫(xiě)Java小應(yīng)用程序,選擇合適的數(shù)據(jù)類(lèi)型,利用循環(huán)求2的40次方的結(jié)果并輸出。

上機(jī)實(shí)驗(yàn)二

1.編寫(xiě)Java應(yīng)用程序,把100~1000的自然數(shù)中能夠被3整除的數(shù)輸出到屏幕上。

2.編寫(xiě)Java小應(yīng)用程序,程序中自定義一個(gè)方法:

doublefind2(intn)

方法的功能是求2的n次方。程序中調(diào)用該方法,輸出2的40次方的結(jié)果并輸出。

3.編寫(xiě)Java應(yīng)用程序,參照例1.15自定義類(lèi)Car,類(lèi)中有3個(gè)變量:字符串name,表示汽車(chē)的品牌;字符串color,表示汽車(chē)的顏色;double型變量weight,表示汽車(chē)的自重;int型變量passenger,表示汽車(chē)能搭乘的人數(shù)。類(lèi)中還定義一個(gè)構(gòu)造方法,用來(lái)初始化上面的4個(gè)變量。在應(yīng)用程序中創(chuàng)建類(lèi)Car的1個(gè)對(duì)象(品牌:“本田”;顏色:“黑色”;自重:1500公斤;搭乘的人數(shù):5人),并顯示其信息。

4.編寫(xiě)Java小應(yīng)用程序,其中定義一個(gè)int數(shù)組(數(shù)組元素任意指定),求數(shù)組元素的和、數(shù)組元素的最大值和最小值并輸出所求的結(jié)果。

5.編寫(xiě)Java應(yīng)用程序,從命令行傳入多個(gè)字符串到程序中,并將他們分行輸出在屏幕上。

本章上機(jī)拓展練習(xí)

1.查閱Java API幫助文檔,上機(jī)調(diào)試下面的程序,使之編譯通過(guò)并能正確運(yùn)行。

publicclassArithmetic{

importjavax.swing.JOptionPane;

publicstaticvoidmain(Stringargs[])

{

StringfirstNumber,secondNumber,thirdNumber;

intnum2,num3,sum,product,average;

firstNumber==JoptionPane.showInputDialog("Enterfirstinteger:")

secondNumber==JOptionPane.showInputDialog("Entersecondinteger:")

thirdNumber==JOptionPane.showInputDialog("Enterthirdinteger:)

num1==Integer.parseInt(firstNumber);

num2==Integer.parseInt(secondNumber);

num3==Integer.parseInt(thirdNumber);

sum=num1+num2+num3;

product=num1*num2*num3;

average=(num1+num2+num3)/3;

JOptionPaneshowMessageDialog(null,"Thesumis"+sum+

"\nTheproductis"+product+"\nTheaverageis"+average,

"Results",JOptionPane.PLAIN_MESSAGE);

}

}//endclassArithmetic

2.查閱Java API幫助文檔,根據(jù)/**/中的注釋將下面的程序補(bǔ)充完整,使之編譯通過(guò)并能正確運(yùn)行。

importjavax.swing.JOptionPane;

publicclassCalculate2{

publicstaticvoidmain(Stringargs[])

{

StringfirstNumber;//firststringenteredbyuser

StringsecondNumber;//secondstringenteredbyuser

StringthirdNumber;//thirdstringenteredbyuser

intnumber1;//firstnumber

intnumber2;//secondnumber

intnumber3;//thirdnumber

intaverage;//averageofthenumbers

intlargest;//largestnumber

intproduct;//productofthenumbers

intsmallest;//smallestnumber

intsum;//sumofthenumbers

/*writeaseriesofstatementstoreadinthreenumbers,convertthem

tointegers,andassignthemtonumber1,number2,andnumber3*/

//initializelargestandsmallest

largest=number1;

smallest=number2;

//determinesmallestandlargest

/*writecodeherethatcomparesallthreeintegersandsetsthe

largestandsmallestaccordingly*/

//performcalculations

sum=number1+number2+number3;

/*writestatementstocalculatetheproductandtheaverage*/

//createresultstring

Stringresult;

/*Writeastatementthatconcatenatesalltheresultsintoasinglestring

"result"thatisdisplayed*/

//displayresults

JOptionPane.showMessageDialog(null,result,"CalculationResults",

JOptionPane.INFORMATION_MESSAGE);

System.exit(0);

}

}//endclassCalculate2

3.打印1~10的整數(shù)的立方和平方

importjava.awt.*;

importjavax.swing.*;

publicclassNumbersextendsJApplet{

//drawcalculatedsquaresandcubicstable

publicvoidpaint(Graphicsg)

{

//drawatitlerow

g.drawString("number",5,15);

g.drawString("Square",70,15);

g.drawString("Cube",145,15);

intx;

x=0;

/*writethreestatementsthatdrawarowcontainingthevaluesof

x,xsquaredandxcubed*/

/*setxto1*/

/*writethreestatementsthatdrawarowcontainingthevaluesof

x,xsquaredandxcubed*/

/*repeatthisalgorithmforvaluesfrom2through10*/

}//endmethodpaint

}//endclassNumbers

第2章使用Java解決簡(jiǎn)單的問(wèn)題

一.概念復(fù)習(xí)和鞏固(請(qǐng)?jiān)谡n后和上機(jī)前完成下面的練習(xí))

1.以下選項(xiàng)中變量均已正確定義,錯(cuò)誤的賦值語(yǔ)句是(D)。

A)i--;B)i+=7;

C)k+=x+2;D)y+x=z;

2.若以下變量均已正確定義并賦值,下面符合Java語(yǔ)言語(yǔ)法的表達(dá)式是(B)。

A)a=a≤7B)a=7+b+c

C)int12.3%4D)a=a+7=c+b

3.定義整型變量:intn=456;,表達(dá)式的值為5的是(AB)。

A)n/10%10B)(n-n/100*100)/10

C)n%10D)n/10

4.對(duì)下面的語(yǔ)句序列正確的說(shuō)法是(B)。

intc='A'/3;

c+='1'%5;

System.out.println(c);

A)產(chǎn)生編譯錯(cuò)誤;B)輸出結(jié)果25;

C)輸出結(jié)果21;D)輸出結(jié)果2;

5.設(shè)a,f,x,y,z均為int型的變量,并已賦值,下列表達(dá)式的結(jié)果屬于非邏輯值的是(D)。

A)x>y&&f<aB)-z<x-y

C)y!=++xD)y+x*x++

6.執(zhí)行下列程序段后,b,x,y的值正確的是(C)。

intx=6,y=8;

booleanb;

b=x<y|++x==--y;

A)true,6,8B)false,7,7

C)true,7,7D)false,6,8

7.下面的程序段輸出的變量b的值是(B)。

inta=0xFFFFFFFE;

intb=~a;

System.out.println("b="+b);

A)0xFFFFFFFEB)1C)14D)-2

8.若a和b均是整型變量并已正確賦值,正確的switch語(yǔ)句是(D)。

A)switch(a+b);B)switch(a+b*3.0)

{……}{……}

C)switchaD)switch(a%b)

{……}{……}

9.以下由do-while語(yǔ)句構(gòu)成的循環(huán)執(zhí)行的次數(shù)是(D)。

A)無(wú)限次B)有語(yǔ)法錯(cuò),不能執(zhí)行

C)一次也不執(zhí)行D)執(zhí)行1次

intk=0;

do{++k;}while(k<1);

10.執(zhí)行完下面的程序段后,k的值是(B)。

intk=0;

label:for(inti=1;i<10;i++)

{

for(intj=1;j<5;j++)

{

k+=i+j;

if(j==3)

breaklabel;

}

}

A)3B)9C)12D)6

11.下列方法x的定義中,正確的是(A)。

A)intx(){charch='a';return(int)ch;}B)voidx{...}

C)intx(inti){return(double)(i+10);}D)x(inta){returna;}

12.下列方法定義中,方法頭不正確的是(D)。

A)publicintx(){...}B)publicstaticintx(doubley){...}

C)voidx(doubled)D)publicstaticx(doublea){...}

13.為了區(qū)分重載多態(tài)中同名的不同方法,要求(A)。

A)采用不同的形式參數(shù)列表B)返回值類(lèi)型不同

C)參數(shù)名不同D)選項(xiàng)A、B、C都對(duì)

14.在某個(gè)類(lèi)中定義一個(gè)方法:voidGetSort(intx),以下能作為這個(gè)方法的重載的是(ABCD)。

A.voidGetSort(floatx){x*=x;}

B.intGetSort(doubley){return(int)(2*y);}

C.doubleGetSort(intx,inty){returnx+y;}

D.voidGetSort(intx,inty){x=x+y;y=x-y}

15.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9};

則對(duì)a數(shù)組元素正確的引用是(B)。

A)a[-3]B)a[9]C)a[10]D)a(0)

16.下面是在命令行運(yùn)行Java應(yīng)用程序A,怎樣才能在main(Stringargs[])方法中訪問(wèn)單詞"first"(BD)?

javaAthefirstsnow,thefirstsnowcame.

A)args[0]B)args[1]C)args[2]D)args[5]

二.本章上機(jī)實(shí)驗(yàn)

上機(jī)實(shí)驗(yàn)三

1.編寫(xiě)Java小程序,定義一個(gè)整數(shù)1255,把它的2進(jìn)制、16進(jìn)制的表示在屏幕輸出。

2.編寫(xiě)應(yīng)用程序,在main方法在中定義字符串“1.235678e2”、“87.8f”和“128”,將他們分別轉(zhuǎn)化為對(duì)應(yīng)的double數(shù)、float數(shù)和int數(shù)并輸出,最后輸出這三個(gè)數(shù)的和(要求結(jié)果保留到小數(shù)點(diǎn)后兩位)。

3.編寫(xiě)Java應(yīng)用程序,求40的階乘(要求輸出結(jié)果的每一位)。

4.編寫(xiě)Java小程序,打印九九乘法表。

5.編寫(xiě)Java小程序,求當(dāng)n=100時(shí)菲波那契(Fibonacci)數(shù)列的的比值。

6.編寫(xiě)Java應(yīng)用程序求1!+2!+...+20!的和并顯示,要求用方法實(shí)現(xiàn)求階乘。

上機(jī)實(shí)驗(yàn)四

1.一個(gè)三位數(shù),滿(mǎn)足數(shù)字算式:,其中*代表數(shù)字,使用一層循環(huán),求滿(mǎn)足條件的三位數(shù)。

2.編寫(xiě)Java應(yīng)用程序,實(shí)現(xiàn)以下功能:當(dāng)應(yīng)用程序運(yùn)行后,根據(jù)屏幕提示進(jìn)行交互式輸入并菲波那契(Fibonacci)數(shù)列的任意項(xiàng)。

3.應(yīng)用程序中定義方法頭如下所示的方法:

staticint[]add(int[]x,int[]y)

staticint[]multi(int[]x,int[]y)

add方法的功能是:把參數(shù)數(shù)組x和y(其元素個(gè)數(shù)相同)的每個(gè)元素相加,并作為返回?cái)?shù)組的元素;multi方法的功能是:把參數(shù)數(shù)組x和y(其元素個(gè)數(shù)相同)的每個(gè)元素相乘,并作為返回?cái)?shù)組的元素。在Java應(yīng)用程序中使用這兩個(gè)方法。

4.重載3個(gè)不同版本的max方法和min方法,這些方法均有4個(gè)參數(shù),分別用來(lái)求4個(gè)int、4個(gè)long、4個(gè)float數(shù)的最大值和最小值。編寫(xiě)Java應(yīng)用程序,使用這些方法。

5.編寫(xiě)Java應(yīng)用程序,程序運(yùn)行后,根據(jù)屏幕提示輸入一個(gè)數(shù)字字符串,回車(chē)后統(tǒng)計(jì)有多少個(gè)偶數(shù)數(shù)字和奇數(shù)數(shù)字。

6.編寫(xiě)應(yīng)用程序,定義一個(gè)5行3列的二維數(shù)組,給數(shù)組的每個(gè)元素賦10~100之間的隨機(jī)值,顯示二維數(shù)組每行的元素,并輸出所有元素的和。

本章上機(jī)拓展練習(xí)

1.查閱Java API幫助文檔,上機(jī)調(diào)試下面的程序,使之編譯通過(guò)并能正確運(yùn)行。

importjavax.swing.JOptionPane;

publicclassTemperature{

publicstaticvoidmain(Stringargs[])

{

intoption;

intdegree1;

intcelsius1;

intfahrenheit1;

Stringresult;

Stringdegree;

Stringfahrenheit;

Stringinput;

Stringcelsius;

option=0;

While(option!=3)

input=JOptionPane.showInputDialog(

"1forFahrenheittoCelsius\n"+

"2forCelsiustoFahrenheit\n3toquit:");

option=Double.parseDouble(input);

degree=

JOptionPane.showInputDialog("EnterthrdegreeinFahrenheit:");

degree1=Double.parseDouble(degree);

celsius1=(degree1-32)*5/9;

result="ThetempinCelsiusis"+celsius1;

JOptionPane.showMessageDialog(null,result,"Result",

JOptionPane.INFORMATION_MESSAGE);

if(option==2);

degree=JOptionPane.showInputDialog("EnterdegreeinCelsius:");

degree1=Double.parseDouble(degree);

fahrenheit1=(degree1*9/5)+32;

result="ThetempinFahrenheitis"+fahrenheit1;

JOptionPane.showMessageDialog(null,result,"Result",

JOptionPane.INFORMATION_MESSAGE);

System.exit(0);

}//endwhileloop

}//endmethodMain

}//endclassTemperature

2.判斷一個(gè)數(shù)是否是回文數(shù)。根據(jù)/**/中的注釋將下面的程序補(bǔ)充完整,使之編譯通過(guò)并能正確運(yùn)行。

importjava.awt.*;

importjavax.swing.JOptionPane;

publicclassPalindrome{

//mainmethodbeginsexecutionofJavaapplication

publicstaticvoidmain(Stringargs[])

{

StringresultString;//resultString

intnumber;//userinputnumber

intoriginalNumber;//storesoriginalvalueinnumberforoutput

intdigit1;//firstdigit

intdigit2;//seconddigit

intdigit4;//fourthdigit

intdigit5;//fifthdigit

intdigits;//numberofdigitsininput

number=0;

digits=0;

/*Writecodethatinputsafive-digitnumber.Displayanerrormessage

ifthenumberisnotfivedigits.Loopuntilavalidinputisreceived.*/

/*Writecodethatseparatesthedigitsinthefivedigitnumber.Use

divisiontoisolatetheleft-mostdigitinthenumber,usearemainder

calculationtoremovethatdigitfromthenumber.Thenrepeatthis

process.StoretheoriginalvalueofnumberinvariableoriginalNumber

beforeperformingcalculations.*/

/*Writecodethatdetermineswhetherthefirstandlastdigitsare

identicalandthesecondandfourthdigitsareidentical.Assign

resultStringastringindicatingwhetherornottheoriginalstring

isapalindrome.*/

/*Displaywhetherornotthegivennumberisapalindrome.*/

System.exit(0);

}//endmethodmain

}//endclassPalindrome

3.下面的程序PartA和PartB分別用來(lái)加密和解密一個(gè)四位數(shù)。根據(jù)/**/中的注釋將下面的程序補(bǔ)充完整,使之編譯通過(guò)并能正確運(yùn)行。

===================================

PartA:Programencryptsafour-digitnumber.

===================================

importjava.awt.*;

importjavax.swing.JOptionPane;

publicclassEncrypt{

//mainmethodbeginsexecutionofJavaapplication

publicstaticvoidmain(Stringargs[])

{

intnumber;//originalnumber

intdigit1;//firstdigit

intdigit2;//seconddigit

intdigit3;//thirddigit

intdigit4;//fourthdigit

intencryptedNumber;//encryptednumber

//enterfourdigitnumbertobeencrypted

StringinputNumber=

JOptionPane.showInputDialog("Enterafourdigitnumber:");

number=Integer.parseInt(inputNumber);

//encrypt

/*Writecodeherethatwillencrypteverydigitofthe4-digitnumber*/

/*Writecodeherethatswapsthedigitstoproducetheencryptednumber*/

/*Writecodeheretodisplaytheencryptednumberinamessagedialog*/

System.exit(0);

}//endmethodmain

}//endclassEncrypt

===================================

PartB:Programdecryptsafour-digitnumber.

===================================

importjava.awt.*;

importjavax.swing.JOptionPane;

publicclassDecrypt{

//methodmainbeginsexecutionofJavaapplication

publicstaticvoidmain(Stringargs[])

{

intnumber;//encryptednumber

intdigit1;//firstdigit

intdigit2;//seconddigit

intdigit3;//thirddigit

intdigit4;//fourthdigit

intdecryptedNumber;//decryptednumber

//enterfourdigitnumbertobedecrypted

number=Integer.parseInt(JOptionPane.showInputDialog(

"Enterafourdigitnumber:"));

//decrypt

/*Writecodeherethatobtainstheindividualdigitsofthe

four-digitnumberanddecryptthem*/

/*Writecodeherethatassemblesthedecrypteddigits

intothedecryptednumber*/

/*Writecodeheretodisplaythedecryptednumberinamessagedialog*/

System.exit(0);

}//endmethodmain

}//endclassdecrypt

4.下面的程序用來(lái)根據(jù)輸入的產(chǎn)品號(hào)和數(shù)量計(jì)算銷(xiāo)售額,請(qǐng)根據(jù)/**/中的注釋將下面的程序補(bǔ)充完整,使之編譯通過(guò)并能正確運(yùn)行。

importjava.awt.*;

importjava.text.NumberFormat;

importjava.util.Locale;

importjavax.swing.*;

publicclassSales{

publicstaticvoidmain(Stringargs[])

{

doubleproduct1=0,product2=0,product3=0,product4=0,product5=0;

StringinputString;

intproductId=1;

/*Asktheusertoenterproductnumber*/

/*Createwhilestatementthatloopsuntilsentinelisentered*/{

/*Determinewhetheruser抯productnumberisin1-5*/{

/*Ifso,askusertoinputthequantitysold*/

/*Writeaswitchstructureherethatwillcomputethetotal

forthatproduct*/

}

else{

/*Displayerrormessageforinvalidproductnumber*/

}

/*Asktheusertoenterproductnumber*/

}//endwhile

//createdecimalformattoformatfloatingpointnumbers

//withtwodigitstotherightofthedecimalpoint

NumberFormatmoneyFormat=NumberFormat.getCurrencyInstance(Locale.US);

//createasummarymessage

Stringoutput="Product1:"+money.format(product1);

/*writecodeherefortherestofthesummarymessageitshouldcontain

thetotalsfortherestoftheproducts,eachonit抯ownline*/

JTextAreaoutputArea=newJTextArea(6,20);

outputarea.setText(output);

//showresults

JOptionPane.showMessageDialog(null,outputArea,"Totals",

JOptionPane.INFORMATION_MESSAGE);

System.exit(0);

}

}//endclassSales

第3章類(lèi)、類(lèi)的繼承和接口

一.概念復(fù)習(xí)和鞏固(請(qǐng)?jiān)谡n后和上機(jī)前完成下面的練習(xí))

1.面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特征是(ABCD)。

A)抽象B)封裝C)繼承D)多態(tài)

2.下面關(guān)于類(lèi)的說(shuō)法正確的是(ABCD)。

A)類(lèi)是Java語(yǔ)言中的一種復(fù)合數(shù)據(jù)類(lèi)型。B)類(lèi)中包含數(shù)據(jù)變量和方法。

C)類(lèi)是對(duì)所有具有一定共性的對(duì)象的抽象。D)Java語(yǔ)言的類(lèi)只支持單繼承。

3.下列選項(xiàng)中,用于在定義類(lèi)頭時(shí)聲明父類(lèi)名的關(guān)鍵字是(D)。

A)packageB)interfaceC)classD)extends

4.定義類(lèi)頭時(shí)可以使用的訪問(wèn)控制符是(CD)。

A)privateB)protected

C)publicD)缺省的,即沒(méi)有訪問(wèn)控制修飾符

5.有一個(gè)類(lèi)A,對(duì)于其構(gòu)造函數(shù)的聲明正確的是(B)。

A)voidA(intx){...} B)A(intx){...}

C)AA(intx){...} D)intA(intx){...}

6.設(shè)X為已定義的類(lèi)名,下列聲明對(duì)象x1的語(yǔ)句中正確的是(ABD)。

A)staticXx1;B)privateXx1=newX();

C)abstractXx1;D)finalXx1=newX();

7.設(shè)類(lèi)B是類(lèi)C的父類(lèi),下列聲明對(duì)象x1的語(yǔ)句中不正確的是(D)。

A)Bx1=newB();B)Bx1=newC();

C)Cx1=newC();D)Cx1=newB();

8.編譯運(yùn)行下面的程序,結(jié)果是(A)。

publicclassA{

publicstaticvoidmain(String[]args){

Bb=newB();

this.test();

}

publicvoidtest(){

System.out.print("A");

}

}

classBextendsA{

voidtest(){

super.test();

System.out.println("B");

}

}

A)產(chǎn)生編譯錯(cuò)誤,因?yàn)轭?lèi)B覆蓋類(lèi)A的方法test()時(shí),降低了其訪問(wèn)控制的級(jí)別。

B)代碼可以編譯運(yùn)行,并輸出結(jié)果:AB。

C)代碼可以編譯運(yùn)行,但沒(méi)有輸出。

D)代碼可以編譯運(yùn)行,并輸出結(jié)果:A。

9.下面的程序編譯運(yùn)行的結(jié)果是(A)。

publicclassAimplementsB{

publicstaticvoidmain(String[]args){

intm,n;

At=newA();

m=t.k;

n=B.k;

System.out.println(m+","+n);

}

}

interfaceB{intk=5;}

A)5,5B)0,5C)0,0D)編譯程序產(chǎn)生編譯錯(cuò)誤

10.為了使包abc中的所有類(lèi)在當(dāng)前程序中可見(jiàn),可以使用的語(yǔ)句是(A)。

A)importabc.*;B)packageabc.*;

C)importabc;D)packageabc;

二.本章上機(jī)實(shí)驗(yàn)

上機(jī)實(shí)驗(yàn)五

1.定義一個(gè)名為MyRectangle的矩形類(lèi),類(lèi)中有4個(gè)私有的整型域,分別是矩形的左上角坐標(biāo)(xUp,yUp)和右下角坐標(biāo)(xDown,yDown);類(lèi)中定義沒(méi)有參數(shù)的構(gòu)造方法和有4個(gè)int參數(shù)的構(gòu)造方法,用來(lái)初始化類(lèi)對(duì)象。類(lèi)中還有以下方法:getW()——計(jì)算矩形的寬度;getH()——計(jì)算矩形的高度;area()——計(jì)算矩形的面積;toString()——把矩形的寬、高和面積等信息作為為字符串返回。編寫(xiě)應(yīng)用程序使用MyRectangle類(lèi)。

2.設(shè)計(jì)一個(gè)Dog類(lèi),它有名字、顏色、年齡等屬性,定義構(gòu)造方法用來(lái)初始化類(lèi)的這些屬性,定義方法輸出Dog的信息。編寫(xiě)應(yīng)用程序使用Dog類(lèi)。

3.設(shè)計(jì)一個(gè)長(zhǎng)方體類(lèi)MyCube,該類(lèi)包含第1題中的MyRectangle類(lèi)對(duì)象作為類(lèi)的域,表示長(zhǎng)方體的底面;此外還包含一個(gè)整型變量d,表示長(zhǎng)方體的高。類(lèi)中定義構(gòu)造方法初始化類(lèi)對(duì)象、定義求體積和表面積的方法。編寫(xiě)應(yīng)用程序測(cè)試MyCube類(lèi)。

4.設(shè)計(jì)一個(gè)表示用戶(hù)的User類(lèi),類(lèi)中的變量有用戶(hù)名、口令(私有的)和記錄用戶(hù)個(gè)數(shù)的變量(靜態(tài)的),定義類(lèi)的3個(gè)構(gòu)造方法(沒(méi)有參數(shù)、有一個(gè)參數(shù)給用戶(hù)名賦值、有兩個(gè)參數(shù)給用戶(hù)名和口令賦值)、獲取和設(shè)置口令的方法、返回字符串表示的類(lèi)信息的方法(包括用戶(hù)名、口令)。編寫(xiě)應(yīng)用程序測(cè)試User類(lèi)。

上機(jī)實(shí)驗(yàn)六

1.定義一個(gè)抽象基類(lèi)Shape,它包含一個(gè)抽象方法getArea(),從Shape類(lèi)派生出Rectangle和Circle類(lèi),這兩個(gè)類(lèi)都用getArea()方法計(jì)算對(duì)象的面積。編寫(xiě)編寫(xiě)應(yīng)用程序使用Rectangle類(lèi)和Circle類(lèi)。

2.定義一個(gè)接口ClassName,接口中只有一個(gè)抽象方法getClassName()。設(shè)計(jì)一個(gè)類(lèi)Horse,該類(lèi)實(shí)現(xiàn)接口ClassName中的方法getClassName(),功能是獲取該類(lèi)的類(lèi)名。編寫(xiě)應(yīng)用程序使用Horse類(lèi)。

3.定義接口myItfc,接口中只有一個(gè)名為area的方法,該方法有一個(gè)double類(lèi)型參數(shù),返回類(lèi)型也為double。編寫(xiě)一個(gè)應(yīng)用程序,并實(shí)現(xiàn)接口myItfc,接口中area方法的實(shí)現(xiàn)是返回參數(shù)的立方值;在應(yīng)用程序中調(diào)用該方法并輸出其結(jié)果。

4.編寫(xiě)小程序,在小程序窗口中顯示字符串“java程序設(shè)計(jì)”,按下鍵盤(pán)上的箭頭鍵,可按照箭頭方向移動(dòng)(提示:得到鍵盤(pán)鍵代碼的方法是e.getKeyCode(),上、下、左、右鍵的編碼分別用常量VK_UP、VK_DOWN、VK_LEFT、VK_RIGHT表示)。

本章上機(jī)拓展練習(xí)

1.調(diào)式下面的程序,使之能編譯通過(guò)并正確運(yùn)行。

//Test.java

importjavax.swing.JOptionPane;

publicclassTest{

publicstaticvoidmain(Stringargs[])

{

StringfirstName=JOptionPane.showInputDialog("EnteryourFirstname");

StringlastName=JOptionPane.showInputDialog("EnteryourLastname");

Stringcolor2=JOptionPane.showInputDialog("Whatcolorisyourcar?");

Stringmiles=JOptionPane.showInputDialog("howmanymileshaveyou"+

"driveninyourcar?");

doublemiles2=Double.parseDouble(miles);

Milesmile=newMiles();

Colorcolor=newColor();

Personperson=newPerson(firstName,lastName);

mile.setMile(miles2);

color.setColor(color2);

Stringoutput=person.getFirstName()+""+person.getLastName()+

"drovehis/her"+color.toString()+"car"+

"for"+mile.toUniversalString()+"Miles";

JOptionPane.showMessageDialog(null,output,"TestingclassRace",

JOptionPane.INFORMATION_MESSAGE);

System.exit(0);

}

}

//Person..java

publicclassPersonextendsObject{

privateStringfirstName;

privateStringlastName;

publicPerson(StringfirstName,StringlastName)

{

lastName=getLastname();

firstName=getFirstName();

}

publicStringgetFirstName()

{

returnfirstName;

}

publicStringgetLastName()

{

returnlastName;

}

}

//Miles.java

importjava.text.DecimalFormat;

publicclassMilesextendsObject{

privatefinaldoublemiles;

publicMiles()

{

setMile(0.0);

}

publicvoidsetMile(doublem)

{

miles=((m>=0.0&&m<=200000)?m:0);

}

publicStringtoMilesString()

{

DecimalFormatformatMile=newDecimalFormat("0");

returnformatMile.format(miles);

}

}

//Color.java

publicclassColorextendsObject{

privateStringcolor;

publicColor()

{

returnsetColor("");

}

publicvoidsetColor()

{

color="black";

returncolor;

}

publicvoidsetColor(Stringm)

{

color=m;

returncolor;

}

publicStringtoColorString()

{

returncolor;

}

}

2.下面的程序Complex.java定義一個(gè)復(fù)數(shù)類(lèi),ComplexTest.java測(cè)試該復(fù)數(shù)類(lèi)。根據(jù)/**/中的注釋將下面的程序補(bǔ)充完整,使之編譯通過(guò)并能正確運(yùn)行。

============================

//ComplexTest.java

//TesttheComplexnumberclass

============================

importjavax.swing.*;

publicclassComplexTest{

publicstaticvoidmain(Stringargs[])

{

Complexa,b;

a=newComplex(9.9,7.7);

b=newComplex(1.4,3.1);

Stringresult="a="+a.toComplexString();

result+="\nb="+b.toComplexString();

result+="\na+b="+a.add(b).toComplexString();

result+="\na-b="+a.subtract(b).toComplexString();

JOptionPane.showMessageDialog(null,result,"ComplexTest",

JOptionPane.INFORMATION_MESSAGE);

System.exit(0);

}

}

=========================

//Complex.java

//DefinitionofclassComplex

=========================

publicclassComplex{

privatedoublereal;

privatedoubleimaginary;

//Initializebothpartsto0

/*Writeheaderforano-argumentconstructor.*/

{

/*WritecodeherethatcallstheComplexconstructorthattakes2

argumentsandinitializesbothpartsto0*/

}

//Initializerealparttorandimaginaryparttoi

/*Writeheaderforconstructorthattakestwoarguments梤ealpartrand

imaginaryparti.*/

{

/*Writelineofcodethatsetsrealparttor.*/

/*Writelineofcodethatsetsimaginaryparttoi.*/

}

//AddtwoComplexnumbers

publicComplexadd(Complexright)

{

/*WritecodeherethatreturnsaComplexnumberinwhichtherealpartis

thesumoftherealpartofthisComplexobjectandtherealpartofthe

Complexobjectpassedtothemethod;andtheimaginarypartisthesum

oftheimaginarypartofthisComplexobjectandtheimaginarypartof

theComplexobjectpassedtothemethod.*/

}

//SubtracttwoComplexnumbers

publicComplexsubtract(Complexright)

{

/*WritecodeherethatreturnsaComplexnumberinwhichtherealpartis

thedifferencebetweentherealpartofthisComplexobjectandthereal

partoftheComplexobjectpassedtothemethod;andtheimaginarypart

isthedifferencebetweentheimaginarypartofthisComplexobjectand

theimaginarypartoftheComplexobjectpassedtothemethod.*/

}

//ReturnStringrepresentationofaComplexnumber

publicStringtoComplexString()

{

return"("+real+","+imaginary+")";

}

}//endclassComplex

3.下面的程序定義了父類(lèi)Employee和它的三個(gè)子類(lèi):CommissionEmployee類(lèi)、HourlyEmployee類(lèi)、SalariedEmployee類(lèi)都繼承自Employee類(lèi)。根據(jù)/**/中的注釋將下面的程序補(bǔ)充完整,使之編譯通過(guò)并能正確運(yùn)行。

============================

//EmployeeTest.java

//Employeehierarchytestprogram.

=============================

importjava.text.DecimalFormat;

importjavax.swing.JOptionPane;

publicclassEmployeeTest{

publicstaticvoidmain(String[]args)

{

DecimalFormattwoDigits=newDecimalFormat("0.00");

//Createemployees

/*CreateSalariedEmployeeJohnSmithwithsocialsecuritynumber

111-11-1111andweeklysalary$800.00.*/

/*CreateSalariedEmployeeSueJoneswithsocialsecuritynumber

222-22-2222withgrosssalesof$10000andacommissionrateof.06.*/

/*CreateSalariedEmployeeKarenPricewithsocialsecuritynumber

444-44-4444anhourlysalaryof$16.75and40hoursworked.*/

//outputeachemployee

/*CreateaStringcalledoutputandassignittheStringrepresentation

ofthethreeemployeeobjectsseparatedbynewlines.*/

JOptionPane.showMessageDialog(null,output);//displayoutput

System.exit(0);

}//endmain

}//endclassEmployeeTest

=====================

//Employee.java

//Employeesuperclass.

=====================

publicclassEmployee{

/*Declareinstancevariablesforthefirstname,

lastnameandsocialsecuritynumber.*/

//constructor

/*Declareaconstructorwiththreeparametersthatareusedto

initializethefirstname,lastnameandsocialsecuritynumber.*/

//setmethods

/*Createsetmethodsforeveryinstancevariable.*/

//getmethods

/*Creategetmethodsforeveryinstancevariable.*/

//returnStringrepresentationofEmployeeobject

/*CreateatoStringmethodthatreturnsaStringcontainingthefirstname

andlastnameseparatedbyaspace.Then,appendanewlineandthesocial

securitynumber.*/

}//endclassEmployee

=========================================

//CommissionEmployee.java

//CommissionEmployeeclassderivedfromEmployee.

==========================================

/*WriteaclassheaderinwhichclassCommissionEmployee

inheritsfromclassEmployee*/

/*Declareinstancevariablesforgrosssalesandcommissionrat

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論