版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《Java语言程序设计》理论与上机复习题及部分答案
第1章Java语言基础
一.概念复习和巩固(请在课后和上机前完成下面的练习)
1.下面说法正确的是(C)。
A)Java程序的源文件名称与主类(公共类)的名称相同,后缀可以是java或txt等。
B)JDK的编译命令是java。
C)一个java源程序编译后可能产生几个字节码文件。
D)在命令行运行编译好的字节码文件,只需在命令行直接键入程序名即可运行该程序。
2.下面的说法正确的是(ABCD)。
A)Java语言是面向对象的、解释执行的网络编程语言。
B)Java语言具有可移植性,是与平台无关的编程语言。
C)Java语言可对内存垃圾自动收集。
D)Java语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。
3.下面main()方法的定义哪些是正确的(ACD)?
A)publicstaticvoidmain(Stringargs[]){}
B)publicstaticvoidmain(String[]){}
C)publicstaticvoidmain(String[]args){}
D)publicstaticvoidmain(String[]x){}
4.用于定义数据简单类型的一组关键字是(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)会产生编译错误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的字节码文件;
(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)该程序能直接运行吗?写出嵌入该程序的字节码文件的html文件,该html文件可以任意命名吗?
(5)程序运行后输出几行?写出输出结果。
11.答案:
(1)Java小程序(JavaApplet)。
(2)Applet1.java
(3)在命令行用javacApplet1.java编译该程序。编译后形成Applet1.class的字节码文件。
(4)不能,为了能使程序运行,还需编写html文件,用<applet></applet>标记符将编译形成的字节码文件嵌入到html文件中,然后通过浏览器运行JavaApplet。或在命令行通过命令appletviewer运行html文件。嵌入该程序的字节码文件的html文件如下,该html文件可以任意命名(如命名为mypage.htm)
mypage.htm文件如下:
<HTML>
<HEAD><TITLE>我的网页</TITLE></HEAD>
<BODY>
<APPLET code=Applet1.classwidth=300height=200></APPLET>
</BODY>
</HTML>
(5)程序运行后输出2行;输出结果如下:
二.本章上机实验
上机实验一
1.编写Java应用程序,定义byte、int、long、float、double、char和boolean等类型的数据并用一个输出语句输出,要求每行输出一个数据。
2.编写Java小应用程序,输出两行字符串:“Java很有趣。”和“努力学习Java编程。”,输出的起点坐标是(20,20),行距是50像素。
3.使用算术运算符得到一个4位十进制数的各位数字并输出,然后输出该数的逆序数和各位数字平方后相加的和。
4.编写Java小应用程序,用三目条件运算符求程序中给定的4个double数的最大值和最小值并输出结果。
5.编写Java应用程序,分别利用while循环、do…while循环和for循环求100~200的自然数的和。
6.编写Java小应用程序,选择合适的数据类型,利用循环求2的40次方的结果并输出。
上机实验二
1.编写Java应用程序,把100~1000的自然数中能够被3整除的数输出到屏幕上。
2.编写Java小应用程序,程序中自定义一个方法:
doublefind2(intn)
方法的功能是求2的n次方。程序中调用该方法,输出2的40次方的结果并输出。
3.编写Java应用程序,参照例1.15自定义类Car,类中有3个变量:字符串name,表示汽车的品牌;字符串color,表示汽车的颜色;double型变量weight,表示汽车的自重;int型变量passenger,表示汽车能搭乘的人数。类中还定义一个构造方法,用来初始化上面的4个变量。在应用程序中创建类Car的1个对象(品牌:“本田”;颜色:“黑色”;自重:1500公斤;搭乘的人数:5人),并显示其信息。
4.编写Java小应用程序,其中定义一个int数组(数组元素任意指定),求数组元素的和、数组元素的最大值和最小值并输出所求的结果。
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帮助文档,根据/**/中的注释将下面的程序补充完整,使之编译通过并能正确运行。
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的整数的立方和平方
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)产生编译错误;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.执行下列程序段后,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语句构成的循环执行的次数是(D)。
A)无限次B)有语法错,不能执行
C)一次也不执行D)执行1次
intk=0;
do{++k;}while(k<1);
10.执行完下面的程序段后,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.为了区分重载多态中同名的不同方法,要求(A)。
A)采用不同的形式参数列表B)返回值类型不同
C)参数名不同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数组元素正确的引用是(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小程序,定义一个整数1255,把它的2进制、16进制的表示在屏幕输出。
2.编写应用程序,在main方法在中定义字符串“1.235678e2”、“87.8f”和“128”,将他们分别转化为对应的double数、float数和int数并输出,最后输出这三个数的和(要求结果保留到小数点后两位)。
3.编写Java应用程序,求40的阶乘(要求输出结果的每一位)。
4.编写Java小程序,打印九九乘法表。
5.编写Java小程序,求当n=100时菲波那契(Fibonacci)数列的的比值。
6.编写Java应用程序求1!+2!+...+20!的和并显示,要求用方法实现求阶乘。
上机实验四
1.一个三位数,满足数字算式:,其中*代表数字,使用一层循环,求满足条件的三位数。
2.编写Java应用程序,实现以下功能:当应用程序运行后,根据屏幕提示进行交互式输入并菲波那契(Fibonacci)数列的任意项。
3.应用程序中定义方法头如下所示的方法:
staticint[]add(int[]x,int[]y)
staticint[]multi(int[]x,int[]y)
add方法的功能是:把参数数组x和y(其元素个数相同)的每个元素相加,并作为返回数组的元素;multi方法的功能是:把参数数组x和y(其元素个数相同)的每个元素相乘,并作为返回数组的元素。在Java应用程序中使用这两个方法。
4.重载3个不同版本的max方法和min方法,这些方法均有4个参数,分别用来求4个int、4个long、4个float数的最大值和最小值。编写Java应用程序,使用这些方法。
5.编写Java应用程序,程序运行后,根据屏幕提示输入一个数字字符串,回车后统计有多少个偶数数字和奇数数字。
6.编写应用程序,定义一个5行3列的二维数组,给数组的每个元素赋10~100之间的随机值,显示二维数组每行的元素,并输出所有元素的和。
本章上机拓展练习
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.判断一个数是否是回文数。根据/**/中的注释将下面的程序补充完整,使之编译通过并能正确运行。
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分别用来加密和解密一个四位数。根据/**/中的注释将下面的程序补充完整,使之编译通过并能正确运行。
===================================
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.下面的程序用来根据输入的产品号和数量计算销售额,请根据/**/中的注释将下面的程序补充完整,使之编译通过并能正确运行。
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)多态
2.下面关于类的说法正确的是(ABCD)。
A)类是Java语言中的一种复合数据类型。B)类中包含数据变量和方法。
C)类是对所有具有一定共性的对象的抽象。D)Java语言的类只支持单继承。
3.下列选项中,用于在定义类头时声明父类名的关键字是(D)。
A)packageB)interfaceC)classD)extends
4.定义类头时可以使用的访问控制符是(CD)。
A)privateB)protected
C)publicD)缺省的,即没有访问控制修饰符
5.有一个类A,对于其构造函数的声明正确的是(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)产生编译错误,因为类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)编译程序产生编译错误
10.为了使包abc中的所有类在当前程序中可见,可以使用的语句是(A)。
A)importabc.*;B)packageabc.*;
C)importabc;D)packageabc;
二.本章上机实验
上机实验五
1.定义一个名为MyRectangle的矩形类,类中有4个私有的整型域,分别是矩形的左上角坐标(xUp,yUp)和右下角坐标(xDown,yDown);类中定义没有参数的构造方法和有4个int参数的构造方法,用来初始化类对象。类中还有以下方法:getW()——计算矩形的宽度;getH()——计算矩形的高度;area()——计算矩形的面积;toString()——把矩形的宽、高和面积等信息作为为字符串返回。编写应用程序使用MyRectangle类。
2.设计一个Dog类,它有名字、颜色、年龄等属性,定义构造方法用来初始化类的这些属性,定义方法输出Dog的信息。编写应用程序使用Dog类。
3.设计一个长方体类MyCube,该类包含第1题中的MyRectangle类对象作为类的域,表示长方体的底面;此外还包含一个整型变量d,表示长方体的高。类中定义构造方法初始化类对象、定义求体积和表面积的方法。编写应用程序测试MyCube类。
4.设计一个表示用户的User类,类中的变量有用户名、口令(私有的)和记录用户个数的变量(静态的),定义类的3个构造方法(没有参数、有一个参数给用户名赋值、有两个参数给用户名和口令赋值)、获取和设置口令的方法、返回字符串表示的类信息的方法(包括用户名、口令)。编写应用程序测试User类。
上机实验六
1.定义一个抽象基类Shape,它包含一个抽象方法getArea(),从Shape类派生出Rectangle和Circle类,这两个类都用getArea()方法计算对象的面积。编写编写应用程序使用Rectangle类和Circle类。
2.定义一个接口ClassName,接口中只有一个抽象方法getClassName()。设计一个类Horse,该类实现接口ClassName中的方法getClassName(),功能是获取该类的类名。编写应用程序使用Horse类。
3.定义接口myItfc,接口中只有一个名为area的方法,该方法有一个double类型参数,返回类型也为double。编写一个应用程序,并实现接口myItfc,接口中area方法的实现是返回参数的立方值;在应用程序中调用该方法并输出其结果。
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定义一个复数类,ComplexTest.java测试该复数类。根据/**/中的注释将下面的程序补充完整,使之编译通过并能正确运行。
============================
//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类。根据/**/中的注释将下面的程序补充完整,使之编译通过并能正确运行。
============================
//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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食源性疾病培训内容知识
- 初中新教师入职培训
- 辽宁省沈阳市铁西区2024-2025学年九年级上学期第一次质量监测语文试卷(含答案)
- 湖北省部分高中2025届高三上学期11月(期中)联考语文试题(含答案)
- 2024-2025学年江苏省扬州市宝应县国际联盟八年级(上)10月月考数学试卷(含答案)
- 初中七年级英语上学期期中考前测试卷(仁爱版)含答案解析
- 沪教牛津版一级英语下册Unit58
- T-TSSP 028-2023 复绿青笋标准规范
- Windows Server网络管理项目教程(Windows Server 2022)(微课版)课件 易月娥 项目3、4 DHCP服务器的配置与管理、DNS服务器的配置与管理
- 5工程投标报价
- 月光下的中国 诗歌朗诵词 作者:欧震
- 电气SY4206-2019石油天然气建设工程施工质量验收规范
- 煤矿安全员技能鉴定考试题库500题(含各题型)
- 风电场道路和平台工程施工设计方案
- 水利水电工程施工质量检验与评定规程版
- 2023年神东煤炭集团招聘笔试题库及答案解析
- 《八声甘州》(柳永)(共47张PPT)
- GB/T 25052-2010连续热浸镀层钢板和钢带尺寸、外形、重量及允许偏差
- GB/T 18301-2012耐火材料常温耐磨性试验方法
- 结核菌素(PPD)试验
- 煤矿安全生产主要岗位责任制、煤矿安全生产管理制度、煤矿安全生产技术操作规程清单编制指南
评论
0/150
提交评论