版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《Java語言程序設計》理論與上機復習題及部分答案
第1章Java語言基礎
一.概念復習和鞏固(請在課后和上機前完成下面的練習)
1.下面說法正確的是(C)。
A)Java程序的源文件名稱與主類(公共類)的名稱相同,后綴可以是java或txt等。
B)JDK的編譯命令是java。
C)一個java源程序編譯后可能產(chǎn)生幾個字節(jié)碼文件。
D)在命令行運行編譯好的字節(jié)碼文件,只需在命令行直接鍵入程序名即可運行該程序。
2.下面的說法正確的是(ABCD)。
A)Java語言是面向對象的、解釋執(zhí)行的網(wǎng)絡編程語言。
B)Java語言具有可移植性,是與平臺無關的編程語言。
C)Java語言可對內存垃圾自動收集。
D)Java語言編寫的程序雖然是“一次編譯,到處運行”,但必須要java的運行環(huán)境。
3.下面main()方法的定義哪些是正確的(ACD)?
A)publicstaticvoidmain(Stringargs[]){}
B)publicstaticvoidmain(String[]){}
C)publicstaticvoidmain(String[]args){}
D)publicstaticvoidmain(String[]x){}
4.用于定義數(shù)據(jù)簡單類型的一組關鍵字是(B)。
A)class,float,main,public
B)float,boolean,int,long
C)char,extends,float,double
D)int,long,float,import
5.以下的變量定義中,合法的語句是(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";
以下賦值語句正確的是(ABD)。
A)s=s+i;B)f=L+i;C)L=f+i;D)s=s+i+f+d;
7.以下語句輸出的結果是(B)
Stringstr="123";
intx=4,y=5;
str=str+(x+y);
System.out.println(str);
A)1239B)12345C)會產(chǎn)生編譯錯誤D)123+4+5
8.以下語句中沒有編譯錯誤或警告提示信息的是(B)?
A)byteb=256;B)doubled=89L;C)charc="a";D)shorts=8.6f;
9.下面的程序輸出結果是:1+2=3,請將程序補充完整。
publicclassApp2{
publicstaticvoidmain(Stringargs[]) {
intx=1,y=2;
System.out.println(______________);
}
}
答案:x+"+"+y+"="+(x+y)
10.閱讀下面的程序,回答問題。
程序如下:
publicclassApp1{
publicstaticvoidmain(Stringargs[]){
charch='\n';
System.out.print("Thefirstsnowcame,"+ch+"Howbeautifulitwas!");
}
}
(1)這是哪一類java程序?
(2)寫出保存該文件的文件名及后綴名?
(3)在JDK下編譯該文件的命令是什么?編譯后形成什么文件?
(4)在JDK下如何運行該程序?程序運行后輸出的結果如何?
10.答案:
(1)Java應用程序(JavaApplication);
(2)App1.java;
(3)在命令行用javacApp1.java編譯該程序。
編譯后形成App1.class的字節(jié)碼文件;
(4)在命令行鍵入javaApp1即可運行該程序。
編程序運行后輸出的結果為:
Thefirstsnowcame,
Howbeautifulitwas!
11.閱讀下面的程序,回答問題。
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)這是哪一類java程序?
(2)寫出保存該文件的文件名及后綴名?
(3)在JDK下編譯該文件的命令是什么?編譯后形成什么文件?
(4)該程序能直接運行嗎?寫出嵌入該程序的字節(jié)碼文件的html文件,該html文件可以任意命名嗎?
(5)程序運行后輸出幾行?寫出輸出結果。
11.答案:
(1)Java小程序(JavaApplet)。
(2)Applet1.java
(3)在命令行用javacApplet1.java編譯該程序。編譯后形成Applet1.class的字節(jié)碼文件。
(4)不能,為了能使程序運行,還需編寫html文件,用<applet></applet>標記符將編譯形成的字節(jié)碼文件嵌入到html文件中,然后通過瀏覽器運行JavaApplet。或在命令行通過命令appletviewer運行html文件。嵌入該程序的字節(jié)碼文件的html文件如下,該html文件可以任意命名(如命名為mypage.htm)
mypage.htm文件如下:
<HTML>
<HEAD><TITLE>我的網(wǎng)頁</TITLE></HEAD>
<BODY>
<APPLET code=Applet1.classwidth=300height=200></APPLET>
</BODY>
</HTML>
(5)程序運行后輸出2行;輸出結果如下:
二.本章上機實驗
上機實驗一
1.編寫Java應用程序,定義byte、int、long、float、double、char和boolean等類型的數(shù)據(jù)并用一個輸出語句輸出,要求每行輸出一個數(shù)據(jù)。
2.編寫Java小應用程序,輸出兩行字符串:“Java很有趣。”和“努力學習Java編程。”,輸出的起點坐標是(20,20),行距是50像素。
3.使用算術運算符得到一個4位十進制數(shù)的各位數(shù)字并輸出,然后輸出該數(shù)的逆序數(shù)和各位數(shù)字平方后相加的和。
4.編寫Java小應用程序,用三目條件運算符求程序中給定的4個double數(shù)的最大值和最小值并輸出結果。
5.編寫Java應用程序,分別利用while循環(huán)、do…while循環(huán)和for循環(huán)求100~200的自然數(shù)的和。
6.編寫Java小應用程序,選擇合適的數(shù)據(jù)類型,利用循環(huán)求2的40次方的結果并輸出。
上機實驗二
1.編寫Java應用程序,把100~1000的自然數(shù)中能夠被3整除的數(shù)輸出到屏幕上。
2.編寫Java小應用程序,程序中自定義一個方法:
doublefind2(intn)
方法的功能是求2的n次方。程序中調用該方法,輸出2的40次方的結果并輸出。
3.編寫Java應用程序,參照例1.15自定義類Car,類中有3個變量:字符串name,表示汽車的品牌;字符串color,表示汽車的顏色;double型變量weight,表示汽車的自重;int型變量passenger,表示汽車能搭乘的人數(shù)。類中還定義一個構造方法,用來初始化上面的4個變量。在應用程序中創(chuàng)建類Car的1個對象(品牌:“本田”;顏色:“黑色”;自重:1500公斤;搭乘的人數(shù):5人),并顯示其信息。
4.編寫Java小應用程序,其中定義一個int數(shù)組(數(shù)組元素任意指定),求數(shù)組元素的和、數(shù)組元素的最大值和最小值并輸出所求的結果。
5.編寫Java應用程序,從命令行傳入多個字符串到程序中,并將他們分行輸出在屏幕上。
本章上機拓展練習
1.查閱Java API幫助文檔,上機調試下面的程序,使之編譯通過并能正確運行。
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ù)/**/中的注釋將下面的程序補充完整,使之編譯通過并能正確運行。
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解決簡單的問題
一.概念復習和鞏固(請在課后和上機前完成下面的練習)
1.以下選項中變量均已正確定義,錯誤的賦值語句是(D)。
A)i--;B)i+=7;
C)k+=x+2;D)y+x=z;
2.若以下變量均已正確定義并賦值,下面符合Java語言語法的表達式是(B)。
A)a=a≤7B)a=7+b+c
C)int12.3%4D)a=a+7=c+b
3.定義整型變量:intn=456;,表達式的值為5的是(AB)。
A)n/10%10B)(n-n/100*100)/10
C)n%10D)n/10
4.對下面的語句序列正確的說法是(B)。
intc='A'/3;
c+='1'%5;
System.out.println(c);
A)產(chǎn)生編譯錯誤;B)輸出結果25;
C)輸出結果21;D)輸出結果2;
5.設a,f,x,y,z均為int型的變量,并已賦值,下列表達式的結果屬于非邏輯值的是(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語句是(D)。
A)switch(a+b);B)switch(a+b*3.0)
{……}{……}
C)switchaD)switch(a%b)
{……}{……}
9.以下由do-while語句構成的循環(huán)執(zhí)行的次數(shù)是(D)。
A)無限次B)有語法錯,不能執(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)返回值類型不同
C)參數(shù)名不同D)選項A、B、C都對
14.在某個類中定義一個方法:voidGetSort(intx),以下能作為這個方法的重載的是(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};
則對a數(shù)組元素正確的引用是(B)。
A)a[-3]B)a[9]C)a[10]D)a(0)
16.下面是在命令行運行Java應用程序A,怎樣才能在main(Stringargs[])方法中訪問單詞"first"(BD)?
javaAthefirstsnow,thefirstsnowcame.
A)args[0]B)args[1]C)args[2]D)args[5]
二.本章上機實驗
上機實驗三
1.編寫Java小程序,定義一個整數(shù)1255,把它的2進制、16進制的表示在屏幕輸出。
2.編寫應用程序,在main方法在中定義字符串“1.235678e2”、“87.8f”和“128”,將他們分別轉化為對應的double數(shù)、float數(shù)和int數(shù)并輸出,最后輸出這三個數(shù)的和(要求結果保留到小數(shù)點后兩位)。
3.編寫Java應用程序,求40的階乘(要求輸出結果的每一位)。
4.編寫Java小程序,打印九九乘法表。
5.編寫Java小程序,求當n=100時菲波那契(Fibonacci)數(shù)列的的比值。
6.編寫Java應用程序求1!+2!+...+20!的和并顯示,要求用方法實現(xiàn)求階乘。
上機實驗四
1.一個三位數(shù),滿足數(shù)字算式:,其中*代表數(shù)字,使用一層循環(huán),求滿足條件的三位數(shù)。
2.編寫Java應用程序,實現(xiàn)以下功能:當應用程序運行后,根據(jù)屏幕提示進行交互式輸入并菲波那契(Fibonacci)數(shù)列的任意項。
3.應用程序中定義方法頭如下所示的方法:
staticint[]add(int[]x,int[]y)
staticint[]multi(int[]x,int[]y)
add方法的功能是:把參數(shù)數(shù)組x和y(其元素個數(shù)相同)的每個元素相加,并作為返回數(shù)組的元素;multi方法的功能是:把參數(shù)數(shù)組x和y(其元素個數(shù)相同)的每個元素相乘,并作為返回數(shù)組的元素。在Java應用程序中使用這兩個方法。
4.重載3個不同版本的max方法和min方法,這些方法均有4個參數(shù),分別用來求4個int、4個long、4個float數(shù)的最大值和最小值。編寫Java應用程序,使用這些方法。
5.編寫Java應用程序,程序運行后,根據(jù)屏幕提示輸入一個數(shù)字字符串,回車后統(tǒng)計有多少個偶數(shù)數(shù)字和奇數(shù)數(shù)字。
6.編寫應用程序,定義一個5行3列的二維數(shù)組,給數(shù)組的每個元素賦10~100之間的隨機值,顯示二維數(shù)組每行的元素,并輸出所有元素的和。
本章上機拓展練習
1.查閱Java API幫助文檔,上機調試下面的程序,使之編譯通過并能正確運行。
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.判斷一個數(shù)是否是回文數(shù)。根據(jù)/**/中的注釋將下面的程序補充完整,使之編譯通過并能正確運行。
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分別用來加密和解密一個四位數(shù)。根據(jù)/**/中的注釋將下面的程序補充完整,使之編譯通過并能正確運行。
===================================
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.下面的程序用來根據(jù)輸入的產(chǎn)品號和數(shù)量計算銷售額,請根據(jù)/**/中的注釋將下面的程序補充完整,使之編譯通過并能正確運行。
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章類、類的繼承和接口
一.概念復習和鞏固(請在課后和上機前完成下面的練習)
1.面向對象程序設計的基本特征是(ABCD)。
A)抽象B)封裝C)繼承D)多態(tài)
2.下面關于類的說法正確的是(ABCD)。
A)類是Java語言中的一種復合數(shù)據(jù)類型。B)類中包含數(shù)據(jù)變量和方法。
C)類是對所有具有一定共性的對象的抽象。D)Java語言的類只支持單繼承。
3.下列選項中,用于在定義類頭時聲明父類名的關鍵字是(D)。
A)packageB)interfaceC)classD)extends
4.定義類頭時可以使用的訪問控制符是(CD)。
A)privateB)protected
C)publicD)缺省的,即沒有訪問控制修飾符
5.有一個類A,對于其構造函數(shù)的聲明正確的是(B)。
A)voidA(intx){...} B)A(intx){...}
C)AA(intx){...} D)intA(intx){...}
6.設X為已定義的類名,下列聲明對象x1的語句中正確的是(ABD)。
A)staticXx1;B)privateXx1=newX();
C)abstractXx1;D)finalXx1=newX();
7.設類B是類C的父類,下列聲明對象x1的語句中不正確的是(D)。
A)Bx1=newB();B)Bx1=newC();
C)Cx1=newC();D)Cx1=newB();
8.編譯運行下面的程序,結果是(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)生編譯錯誤,因為類B覆蓋類A的方法test()時,降低了其訪問控制的級別。
B)代碼可以編譯運行,并輸出結果:AB。
C)代碼可以編譯運行,但沒有輸出。
D)代碼可以編譯運行,并輸出結果:A。
9.下面的程序編譯運行的結果是(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)生編譯錯誤
10.為了使包abc中的所有類在當前程序中可見,可以使用的語句是(A)。
A)importabc.*;B)packageabc.*;
C)importabc;D)packageabc;
二.本章上機實驗
上機實驗五
1.定義一個名為MyRectangle的矩形類,類中有4個私有的整型域,分別是矩形的左上角坐標(xUp,yUp)和右下角坐標(xDown,yDown);類中定義沒有參數(shù)的構造方法和有4個int參數(shù)的構造方法,用來初始化類對象。類中還有以下方法:getW()——計算矩形的寬度;getH()——計算矩形的高度;area()——計算矩形的面積;toString()——把矩形的寬、高和面積等信息作為為字符串返回。編寫應用程序使用MyRectangle類。
2.設計一個Dog類,它有名字、顏色、年齡等屬性,定義構造方法用來初始化類的這些屬性,定義方法輸出Dog的信息。編寫應用程序使用Dog類。
3.設計一個長方體類MyCube,該類包含第1題中的MyRectangle類對象作為類的域,表示長方體的底面;此外還包含一個整型變量d,表示長方體的高。類中定義構造方法初始化類對象、定義求體積和表面積的方法。編寫應用程序測試MyCube類。
4.設計一個表示用戶的User類,類中的變量有用戶名、口令(私有的)和記錄用戶個數(shù)的變量(靜態(tài)的),定義類的3個構造方法(沒有參數(shù)、有一個參數(shù)給用戶名賦值、有兩個參數(shù)給用戶名和口令賦值)、獲取和設置口令的方法、返回字符串表示的類信息的方法(包括用戶名、口令)。編寫應用程序測試User類。
上機實驗六
1.定義一個抽象基類Shape,它包含一個抽象方法getArea(),從Shape類派生出Rectangle和Circle類,這兩個類都用getArea()方法計算對象的面積。編寫編寫應用程序使用Rectangle類和Circle類。
2.定義一個接口ClassName,接口中只有一個抽象方法getClassName()。設計一個類Horse,該類實現(xiàn)接口ClassName中的方法getClassName(),功能是獲取該類的類名。編寫應用程序使用Horse類。
3.定義接口myItfc,接口中只有一個名為area的方法,該方法有一個double類型參數(shù),返回類型也為double。編寫一個應用程序,并實現(xiàn)接口myItfc,接口中area方法的實現(xiàn)是返回參數(shù)的立方值;在應用程序中調用該方法并輸出其結果。
4.編寫小程序,在小程序窗口中顯示字符串“java程序設計”,按下鍵盤上的箭頭鍵,可按照箭頭方向移動(提示:得到鍵盤鍵代碼的方法是e.getKeyCode(),上、下、左、右鍵的編碼分別用常量VK_UP、VK_DOWN、VK_LEFT、VK_RIGHT表示)。
本章上機拓展練習
1.調式下面的程序,使之能編譯通過并正確運行。
//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定義一個復數(shù)類,ComplexTest.java測試該復數(shù)類。根據(jù)/**/中的注釋將下面的程序補充完整,使之編譯通過并能正確運行。
============================
//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.下面的程序定義了父類Employee和它的三個子類:CommissionEmployee類、HourlyEmployee類、SalariedEmployee類都繼承自Employee類。根據(jù)/**/中的注釋將下面的程序補充完整,使之編譯通過并能正確運行。
============================
//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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中國塑料飯盒市場調查研究報告
- 曾與泵站課程設計
- 素描課程設計是什么
- 廢料plc課程設計
- 珠寶加工教學課程設計
- 2025年度安徽城市軌道交通施工合同正本規(guī)范2篇
- 2025版互聯(lián)網(wǎng)企業(yè)研發(fā)團隊勞動合同3篇
- 環(huán)境經(jīng)濟課程設計
- 2024年環(huán)保節(jié)能電地暖施工協(xié)議2篇
- 招投標課程設計紙
- 2024年健康照護師理論試題
- 《可燃氣體檢測儀》課件
- 2023年線路維護主管年度總結及下一年展望
- 《黃土高填方地基技術規(guī)程》
- 部編版九年級中考復習戲劇閱讀 (教師版)
- 裸光纖施工方案
- 2023年意識形態(tài)工作責任清單及風險點臺賬
- 《經(jīng)典動畫賞析》課件
- 小學英語-Unit2 Ways to go to school Part B Read and write教學設計學情分析教材分析課后反思
- 外研社新標準商務英語綜合教程1
- (完整)招工登記表
評論
0/150
提交評論