JAVA实验+答案

JAVA实验+答案
JAVA实验+答案

实验7

1.编一个程序,包含以下文件。

(1)Shape.java文件,在该文件中定义接口Shape,该接口在shape包中。

属性:PI。

方法:求面积的方法area()。

(2)Circle.java文件,在该文件中定义圆类Circle,该类在circle包中,实现Shape接口。

属性:圆半径radius。

方法:构造方法;实现接口中求面积方法area();求周长方法perimeter()。

(3)“Cylinder.java”文件,在该文件中定义圆柱体类Cylinder,该类口在cylinder包中,继承圆类。

属性:圆柱体高度height。

方法:构造方法;求表面积方法area();求体积方法volume()。

(4)X5_3_6.java文件,在该文件中定义主类X5_3_6,该类在默认包中,其中包含主方法main(),在主方法中创建两个圆类对象cir1和cir2,具体尺寸自己确定,并显示圆的面积和周长;再创建两个圆柱体类的对象cy1和cy2,具体尺寸自己确定,然后分别显示圆柱体cy1和cy2的底圆的面积和周长以及它们各自的体积和表面积。

【编程分析】本题主要考察接口、包、继承、封装等问题。编程步骤如下:

第一步:首先创建p1包,在其中创建Shape接口

//Shape.java文件

packagep1; //创建p1包

publicinterfaceShape{ //定义Shape接口

}

第二步:创建Circle类和Cylinder类,它们都定义在p2包中。

//Circle.java文件

packagep2; //创建p2包

importp1.*;

publicclassCircleimplementsShape{ //定义实现Shape接口的Circle类

}

//Cylinder.java文件

packagep2;

publicclassCylinderextendsCircle{ //创建继承Circle类的Cylinder类

}

第三步:创建主类,在其中的main()方法中创建对象,实现相应的功能。

//X5_3_6.java文件

packagep3;

importp2.*;

publicclassX5_3_6{//定义主类

publicstaticvoidmain(String[]args){

}

}

【参考程序】

//X5_3_6.java文件

packagep3;

importp2.*;

publicclassX5_3_6{//定义主类

publicstaticvoidmain(String[]args){

Circlecir1=newCircle(120.5);

Circlecir2=newCircle(183.8);

"+cir1.area());

"+cir1.perimeter());

"+cir2.area());

"+cir2.perimeter());

Cylindercy1=newCylinder(27.3,32.7);

Cylindercy2=newCylinder(133.5,155.8);

"+cy1.area());

"+cy1.volume());

"+cy2.area());

"+cy2.volume());

}

}

//Shape.java文件

packagep1; //创建p1包

publicinterfaceShape{ //定义Shape接口

d oublePI=Math.PI;

d oublearea(); //求面积方法

}

//Circle.java文件

packagep2; //创建p2包

importp1.*;

publicclassCircleimplementsShape{ //定义实现Shape接口的Circle类d oubleradius; //半径

p ublicCircle(doubler){

radius=r;

}

p ublicdoublearea(){ //实现Shape接口中的方法(这是必须的)returnPI*radius*radius;

}

p ublicdoubleperimeter(){ //定义求圆周长的方法

return2*PI*radius;

}

}

//Cylinder.java文件

packagep2;

publicclassCylinderextendsCircle{ //创建继承Circle类的Cylinder类d oubleheight;

p ublicCylinder(doubler,doubleh){

super(r);

height=h;

}

p ublicdoublearea(){

return2*PI*radius*radius+2*PI*radius*height;

}

p ublicdoublevolume(){

returnPI*radius*radius*height;

}

}

2)定义一个接口OneToN,在接口中包含一个抽象方法disp()。定义Sum和Pro类,并分别用不同代码实现ONeToN的disp()方法,在Sum的方法中计算1~n的和,在Pro的方法中计算1~n的乘积interfaceOneToN

{

publicvoiddisp(intn);

}

classSumimplementsOneToN

{

publicvoiddisp(intn)

{

intsum=0;

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

{

sum=sum+i;

}

}

}

classProimplementsOneToN

{

publicvoiddisp(intn)

{

longpro=1;

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

{

pro=pro*i;

}

}

}

publicclassinterfaceTest{

publicstaticvoidmain(String[]args){

//TODOcodeapplicationlogichere

Sumx=newSum();

x.disp(100);

}

}

3)改错,上传正确答案,并以注释形式给出错误原因

classSuperClass

{

publicSuperClass(Stringmsg)

{constructor:"+msg);}

}

classSubClassextendsSuperClass

{

publicSubClass(Stringmsg)

{

Super(msg);//父类没有无参的构造方法,应采用super显示调用父类的构造方法constructor");

}

}

publicclassTest1{

publicstaticvoidmain(String[]args){

SubClassdescendent=newSubClass();

}

}

4)利用多态性编程,创建一个抽象类shape类,定义一个函数Area为求面积的公共方法,再定义Triangle,Rectangle和circle类,实现computerArea方法;增加display方法,显示name和area,并在Triangle,Rectangle 和circle类覆盖该方法,并为每个类增加自己的构造方法;在主类中创建不同对象,求得不同形状的面积。

答案略。

实验8

一、选择题

1.关于异常的含义,下列描述中最正确的一个是(D)。

A.程序编译错误B.程序语法错误

C.程序自定义的异常事件D.程序编译或运行时发生的异常事件

【解析】异常就是程序编译或运行时发生的异常事件。

2.自定义异常时,可以通过对下列哪一项进行继承?(C)

A.Error类B.Applet类

C.Exception类及其子类D.AssertionError类

【解析】自定义异常类时,该类必须继承Exception类及其子类。

3.对应try和catch子句的排列方式,下列哪一项是正确的?(A)

A.子类异常在前,父类异常在后B.父类异常在前,子类异常在后

C.只能有子类异常D.父类和子类不能同时出现在try语句块中

【解析】对应try和catch子句的排列方式,要求子类异常(范围小的异常)在前,父类异常(范围大的异常)在后。

4.运行下面程序时,会产生什么异常?(A)

publicclassX7_1_4{

publicstaticvoidmain(String[]args){

intx=0;

inty=5/x;

int[]z={1,2,3,4};

intp=z[4];

}

}

A.ArithmeticException B.NumberFormatException

C.ArrayIndexOutOfBoundsException D.IOException

【解析】当程序执行到“inty=5/x”语句时,发生异常,程序中止执行,因此发生ArithmeticException异常。

5.运行下面程序时,会产生什么异常?(C)

publicclassX7_1_5{

publicstaticvoidmain(String[]args){

int[]z={1,2,3,4};

intp=z[4];

intx=0;

inty=5/x;

}

}

A.ArithmeticException B.NumberFormatException

C.ArrayIndexOutOfBoundsException D.IOException

【解析】当程序执行到“intp=z[4]”语句时,发生异常,程序中止执行,因此发生ArrayIndexOutOfBoundsException 异常。

6.下列程序执行的结果是(B)。

publicclassX7_1_6{

publicstaticvoidmain(String[]args){

try{

return;

}

finally{

}

}

}

A.程序正常运行,但不输出任何结果B.程序正常运行,并输出Finally

C.编译通过,但运行时出现异常D.因为没有catch子句,因此不能通过编译

【解析】在执行try-catch-finally语句块时,最后必须执行finally语句块中的内容,而本程序没有异常发生,因此程序正常运行,并输出Finally。

7.下列代码中给出正确的在方法体内抛出异常的是(B)。

A.newthrowException(""); B.thrownewException("");

C.throwsIOException(); D.throwsIOException;

【解析】在方法体内抛出异常时只能使用throw,而不能使用throws,另外,“newException("")”是创建一个异常,因此B是正确的。

8.下列描述了Java语言通过面相对象的方法进行异常处理的好处,请选出不在这些好处范围之内的一项(C)A.把各种不同的异常事件进行分类,体现了良好的继承性

B.把错误处理代码从常规代码中分离出来

C.可以利用异常处理机制代替传统的控制流程

D.这种机制对具有动态运行特性的复杂程序提供了强有力的支持

【解析】异常处理机制不能代替传统的流程控制。

二、编程题

1.编写一个系统自动抛出的、系统自行处理的数组大小为负数的程序。

【编程分析】

当编写的程序中没有处理异常的语句时,系统会自动抛出异常,并自行进行处理。

【参考程序】

publicclassX7_3_1{

publicstaticvoidmain(String[]args){

int[]a=newint[-5];

for(inti=0;i

a[i]=10+i;

}

}

}

【运行结果】

Exceptioninthread"main"

atX7_3_1.main(X7_3_1.java:3)

2.编写一个由throw抛出的、系统自行处理的数组下标越界的程序。

【编程分析】

当由throw抛出异常后,如果程序本身不进行异常处理,Java系统将采用默认的处理方式进行处理。【参考程序】

importjava.io.*;

publicclassX7_3_2{

publicstaticvoidmain(String[]args)throwsIOException{

InputStreamReaderisr=newInputStreamReader(System.in);

BufferedReaderbr=newBufferedReader(isr);

int[]a=newint[5];

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

if(n>5) //当输入的n值大于5时将由throw抛出异常

thrownewArrayIndexOutOfBoundsException();

程序继续执行");

for(inti=0;i

a[i]=10+i;

}

}

}

【运行结果】

8

Exceptioninthread"main"

atC1.main(C1.java:9)

3.编写一个系统自动抛出的、由try-catch捕捉处理的分母为0以及数组下标越界的程序。

【编程分析】

当在try语句块中出现分母为0的情况时,如果在catch参数中有ArithmeticException对象,则就能捕捉到该异常并进行处理;同样,当在try语句块中出现分母为数组下标越界的情况时,如果在catch参数中有ArrayIndexOutOfBoundsException对象,则就能捕捉到该异常并进行处理。

【参考程序】

importjava.io.*;

publicclassX7_3_3{

publicstaticvoidmain(Stringargs[])throwsIOException{

InputStreamReaderisr=newInputStreamReader(System.in);

BufferedReaderbr=newBufferedReader(isr);

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

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

try{ //当输入的b为0时,就会出现算术异常

}

catch(ArithmeticExceptione){ //捕捉算术异常并进行处理

}

intc[]=newint[4],sum=0;

try{ //当出现数组下标越界时就会抛出异常

for(inti=0;i<5;i++)sum+=c[i];

"sum="+sum);

}

catch(ArrayIndexOutOfBoundsExceptione){//捕捉数组下标越界异常并处理

}

}

}

【运行结果】

请输入两个整数:

20

出现被0除的情况!

数组下标越界!

4.编写一个由throw抛出的、由try-catch捕捉处理的分母为0以及数组下标越界的程序。

【编程分析】

当在程序出现异常之前利用throw语句来抛出异常,可以做到防患于未然,提前进行异常处理,将由被动处理异常转变为主动防止异常发生。

【参考程序】

importjava.io.*;

publicclassX7_3_4{

publicstaticvoidmain(Stringargs[])throwsIOException{

InputStreamReaderisr=newInputStreamReader(System.in);

BufferedReaderbr=newBufferedReader(isr);

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

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

try{

if(b==0)

thrownewArithmeticException("抛出算术异常");

}

catch(ArithmeticExceptione){

e.printStackTrace();

}

intc[]={1,2,3,4},sum=0;

try{

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

if(i>=4)

thrownewArrayIndexOutOfBoundsException("抛出数组下标越界异常");

sum+=c[i];

"sum="+sum);

}

}

catch(ArrayIndexOutOfBoundsExceptione){

e.printStackTrace();

}

}

}

5.自定义两个异常类NumberTooBigException和NumberTooSmallException,在其中定义各自的构造方法,分别打印输出“发生数字太大异常”和“发生数字太小异常”。然后在主类中定义一个带throws的方法numberException(intx),当x>100时通过throw抛出NumberTooBigException异常,当x<0时通过throw抛出NumberTooSmallException异常;最后在main()方法中调用该方法,实现从键盘中输入一个整数,如果输入的是负数,引发NumberTooSmallException异常,如果输入的数大于100,引发。NumberTooBigException异常,否则输出“没有发生异常”。

【编程分析】本题主要考察自定义异常的方法。

第一步:定义异常类NumberTooBigException

classNumberTooBigExceptionextendsException{

NumberTooBigException(){

super("发生数字太大异常");

}

}

第二步:定义异常类NumberTooSmallException

classNumberTooSmallExceptionextendsException{

NumberTooSmallException(){

super("发生数字太小异常");

}

}

第三步:在主类X7_3_5中定义numberException()方法。

publicstaticvoidnumberException(intx)

throwsNumberTooBigException,NumberTooSmallException{

if(x>100)

thrownewNumberTooBigException();

elseif(x<0)

thrownewNumberTooSmallException();

else

}

第四步:在main()方法中调用numberException()方法并捕捉和处理由此方法引起的异常。

【参考程序】

importjava.io.*;

publicclassX7_3_5{

publicstaticvoidmain(Stringargs[])throwsIOException{

InputStreamReaderisr=newInputStreamReader(System.in);

BufferedReaderbr=newBufferedReader(isr);

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

try{

numberException(a);

}catch(NumberTooBigExceptione){

e.printStackTrace();

}catch(NumberTooSmallExceptione){

e.printStackTrace();

}

}

publicstaticvoidnumberException(intx)throwsNumberTooBigException,NumberTooSmallException{ if(x>100)

thrownewNumberTooBigException();

elseif(x<0)

thrownewNumberTooSmallException();

else

}

}

classNumberTooBigExceptionextendsException{

NumberTooBigException(){

super("发生数字太大异常");

}

}

classNumberTooSmallExceptionextendsException{

NumberTooSmallException(){

super("发生数字太小异常");

}

}

实验9

一、选择题

1.下列说法中错误的一项是(B)。

A.构件是一个可视化的能与用户在屏幕上交互的对象

B.构件能够独立显示出来

C.构件必须放在某个容器中才能正确显示

D.一个按钮可以是一个构件

【解析】构件不能独立显示,它必须放在某个容器中才能正确显示。

2.进行Java基本GUI设计需要用到的包是(C)。

A.java.io B.java.sql C.java.awt D.java.rmi

【解析】进行Java基本GUI设计需要用到的包是java.awt和javax.swing 3.Container是下列哪一个类的子类(D)?

A.Graphics B.Window C.Applet D.Component 【解析】Container类是由Component类派生的。

B)。

Window

C.java.awt

Window。

5.下列哪个方法可以将MenuBar加入Frame中(D)?

A.setMenu() B.addMenuBar() C.add() D.setMenuBar() 【解析】可以将MenuBar加入Frame中的方法是setMenuBar()。

6.下列叙述中,错误的一项是(D)。

A.采用GridLayout布局,容器中的每个构件平均分配容器空间

B.采用GridLayout布局,容器中的每个构件形成一个网络状的布局

C.采用GridLayout布局,容器中的构件按照从左到右、从上到下的顺序排列D.采用GridLayout布局,容器大小改变时,每个构件不再平均分配容器空间【解析】采用GridLayout布局,容器大小改变时,每个构件平均分配容器空间。7.当单击鼠标或拖动鼠标时,触发的事件是(D)。

A.KeyEvent B.ActionEvent C.ItemEvent D.MouseEvent

【解析】对鼠标操作,触发的事件是MouseEvent事件。

8.下列哪一项不属于Swing的顶层组件(C)?

A.JApplet B.JDialog C.JTree D.Jframe

【解析】JTree 只有在容器中才能显示,它不属于swing的顶层组件。

9.下列说法中错误的一项是(D)。

A.在实际编程中,一般使用的是Component类的子类

B.在实际编程中,一般使用的是Container类的子类

C.Container类是Component类的子类

D.容器中可以放置构件,但是不能够放置容器

【解析】容器中既可以放置构件,也可以放置容器。

10.下列哪一项不属于AWT布局管理器(D)?

A.GridLayout B.CardLayout C.BorderLayout D.BoxLayout

【解析】BoxLayout属于swing布局管理器,不属于AWT布局管理器。

11.下列说法中错误的一项是(A)。

A.MouseAdapter是鼠标运动适配器B.WindowAdapter是窗口适配器

C.ContainerAdapter是容器适配器D.KeyAdapter是键盘适配器

【解析】MouseAdapter是鼠标适配器,而MouseMotionAdapte才是鼠标运动适配器。

12.布局管理器可以管理构件的哪个属性(A)?

A.大小B.颜色C.名称D.字体

【解析】布局管理器可以管理构件的位置和大小,而不能管理构件的其他属性。

13.编写AWT图形用户界面的时候,一定要import的语句是(B)。

A.importjava.awt; B.importjava.awt.*;

C.importjavax.awt D.importjavax.swing.*;

【解析】“importjava.awt.*;”语句的含义是加载awt包中的所有类,而其他都不是。

14.在类中若要处理ActionEvent事件,则该类需要实现的接口是(B)。

A.Runnable B.ActionListener C.Serializable D.Event

【解析】处理ActionEvent事件的类需要实现的接口是ActionListener,它其中包含了actionPerformed()方法。15.下列不属于java.awt包中的基本概念的一项是(C)。

A.容器B.构件C.线程D.布局管理器

【解析】线程不属于java.awt包中的基本概念的一项,其他三个都是。

16.下列关于AWT构件的说法中错误的一项是(D)。

A.Frame是顶级窗口,它无法直接监听键盘输入事件

B.对话框需要依赖于其他窗口而存在

C.菜单只能被添加到菜单栏中

D.可以将菜单添加到任意容器的某处

【解析】菜单只能添加到Applet、Frame等容器中,不能添加到任意容器的某处。

17.JPanel的默认布局管理器是(C)。

A.BorderLayout B.GridLayout C.FlowLayout D.CardLayout

【解析】Panel、JPanel和Applet的默认布局管理器都是FlowLayout。

18.下列说法中错误的是(B)。

A.在Windows系统下,Frame窗口是有标题、边框的

B.Frame的对象实例化后,没有大小,但是可以看到

C.通过调用Frame的setSize()方法来设定窗口的大小

D.通过调用Frame的setVisible(true)方法来设置窗口为可见

【解析】Frame的对象实例化后,没有大小,也不能看到,只有通过调用Frame的setSize()和setVisible(true)

方法才能设定窗口的大小和可见性。

19.下列说法中错误的是(D)。

A.同一个对象可以监听一个事件源上多个不同的事件

B.一个类可以实现多个监听器接口

C.一个类中可以同时出现事件源和事件处理者

D.一个类只能实现一个监听器接口

【解析】一个类可以实现多个监听器接口,从而实现对多个事件的监听。

20.下列选项中不属于容器的一项是()。

A.Window B.Panel C.FlowLayout D.ScrollPane

【解析】FlowLayout类属于布局管理器,而不属于容器。

二、编程题

1.创建一个Frame类型窗口,在窗口中添加2个不同颜色的Panel面板,每个面板中添加2个按钮构件。【编程分析】本程序主要考察窗口、面板以及按钮的创建及布局问题。

第一步:首先定义一个主类,让该类继承Frame类。

第二步:定义该类的数据成员,包括两个Panel对象,一个长度为4的Button对象数组。

第三步:创建类的工作方法,在方法中创建各个对象、设置对象属性、布局整个界面、设置窗口大小并显示界面。

第四步:在类的main()方法中创建本类对象,从而显示整个窗口界面。

【参考程序】

importjava.io.*;

importjava.awt.*;

publicclassX10_3_1extendsFrame{

Panelpn1,pn2; //定义面板

Button[]bt=newButton[4];//定义按钮数组

publicstaticvoidmain(String[]args)throwsIOException{

newX10_3_1();

}

publicX10_3_1(){

pn1=newPanel(); //创建面板对象

pn2=newPanel();

pn1.setBackground(Color.yellow); //设置面板背景颜色

pn2.setBackground(Color.green);

for(inti=0;i<4;i++){ //创建按钮对象

bt[i]=newButton("Button"+(i+1));

}

pn1.add(bt[0]); //向面板中添加按钮,面板的默认布局为FlowLayout

pn1.add(bt[1]);

pn2.add(bt[2]);

pn2.add(bt[3]);

add(pn1,BorderLayout.NORTH);

//向窗口添加面板,窗口默认布局为BorderLayout

add(pn2,BorderLayout.SOUTH);

this.setSize(300,200); //设置窗口大小

this.setVisible(true); //显示窗口

}

}

【运行结果】

2.创建一个Frame类型窗口,采用GridLayout布局,在窗口中创建一个计算器的界面。

【编程分析】本程序主要考察布局管理问题。

第一步:创建一个主类,其中定义两个面板,一个文本框,一个二维按钮数组,一个二维字符串数组。一个构造方法、一个main()方法。

第二步:在构造方法中创建控件,实现布局。

【参考程序】

importjava.io.*;

importjava.awt.*;

publicclassX10_3_2extendsFrame{

Panelpn1,pn2; //定义两个面板

TextFieldtf; //定义文本框控件

Button[][]bt=newButton[4][6]; //定义按钮对象二维数组

String[][]str={{"MC","7","8","9","/","sqrt"},{"MR","4","5","6","*","%"},

{"MS","1","2","3","-","1/x"},{"M+","0","+/-",".","+","="}};

publicstaticvoidmain(String[]args)throwsIOException{

newX10_3_2();

}

publicX10_3_2(){

pn1=newPanel(); //创建面板

pn2=newPanel();

tf=newTextField(35); //创建文本框

pn1.add(tf);

pn2.setLayout(newGridLayout(4,6)); //设置pn2面板的布局

for(inti=0;i<4;i++){ //创建24个按钮控件并添加到pn2面板中

for(intj=0;j<6;j++){

bt[i][j]=newButton(str[i][j]);

pn2.add(bt[i][j]);

}

}

add(pn1,BorderLayout.NORTH); //将pn1面板添加到窗口北面

add(pn2,BorderLayout.CENTER); //将pn2面板添加到窗口中间

this.setTitle("Calculator"); //设置窗口标题

this.setSize(300,250); //设置窗口大小

this.setVisible(true); //显示窗口

}

}

【运行结果】

3.创建两个Frame类型窗口,在第一个窗口中添加一个按钮,当单击按钮时打开第二个窗口,当单击两个窗口中的关闭按钮时能关闭窗口。

【编程分析】本程序主要考察窗口事件、按钮事件的实现方法。

第一步:定义一个能创建两个窗口的类TwoFrames,由于该类中的两个窗口能够关闭,并且对点击按钮有响应,因此让该类继承WindowAdapter类,并实现ActionListener接口。在类中创建两个窗口,并在第一个窗口中添加一个按钮控件;重新定义继承自WindowAdapter类的方法windowClosing(),实现关闭窗口的目的,

实现ActionListener接口中的方法actionPerformed(),从而实现点击按钮时打开第二个窗口。

第二步:在主类中的main()方法中创建类TwoFrames的对象。

【参考程序】

importjava.awt.*;

import

publicclassX10_3_3{//定义主类

publicstaticvoidmain(String[]args){

newTwoFrames();

}

}

classTwoFramesextendsWindowAdapterimplementsActionListener{//定义窗口类

Framefr1,fr2; //定义两个窗口

Buttonbt; //定义按钮

TwoFrames(){ //构造方法

fr1=newFrame("FirstFrame");

fr2=newFrame("SecondFrame");

bt=newButton("OpenSecondFrame");

bt.addActionListener(this);

fr1.add(bt,BorderLayout.NORTH);

fr1.addWindowListener(this);

fr2.addWindowListener(this);

fr1.setSize(200,150);

fr2.setSize(200,150);

fr1.setVisible(true);

}

publicvoidactionPerformed(ActionEvente){ //处理点击按钮事件

if(e.getSource()==bt){

fr2.setVisible(true);

}

}

publicvoidwindowClosing(WindowEvente){ //处理关闭窗口操作

System.exit(0);

}

}

【运行结果】

4.编写一个能在窗口中同时响应鼠标事件和键盘事件的程序,能对鼠标的各种动作进行监听,对键盘的输入做出相应的反应。

【编程分析】本程序主要考察对鼠标、键盘事件的处理问题。

第一步:定义一个MouseKeyFrame类,该类主要有三个功能,(1)创建窗口。(2)处理鼠标事件。(3)处理键盘事件。创建窗口主要在类的构造方法中实现;处理鼠标事件主要在内部类MouseHandler中实现,该类实现了MouseListener和MouseMotionListener两个接口;处理键盘事件主要在内部类KeyHandler中实现,该类继承了Canvas类,实现了KeyListener接口。Canvas类对象是接受键盘事件的容器,KeyListener接口中包含了处理键盘事件的方法。

第二步:创建主类X10_3_4,在该类的main()方法中创建MouseKeyFrame类对象。

【参考程序】

importjava.awt.*;

publicclassX10_3_4{//定义主类

publicstaticvoidmain(String[]args){

newMouseKeyFrame();

}

}

classMouseKeyFrameextendsFrame{ //定义创建窗口、处理鼠标和键盘事件的类Panelpn;

TextFieldtf1,tf2;

KeyHandlerkh;

MouseKeyFrame(){

pn=newPanel(newBorderLayout());

tf1=newTextField(30);

tf2=newTextField(30);

kh=newKeyHandler(newDimension(200,80),Color.yellow);

pn.add(kh,BorderLayout.CENTER);

pn.add(tf2,BorderLayout.SOUTH);

this.add(tf1,BorderLayout.NORTH);

this.add(pn,BorderLayout.SOUTH);

this.addMouseListener(newMouseHandler());

this.addMouseMotionListener(newMouseHandler());

this.addWindowListener(newWindowAdapter(){ //关闭窗口事件处理

publicvoidwindowClosing(WindowEvente){

System.exit(0);

}

} );

this.setSize(400,300);

this.setVisible(true);

}

classMouseHandlerimplementsMouseListener,MouseMotionListener{

//处理鼠标事件内部类//以下5个方法是实现MouseListener接口中的方法

publicvoidmouseEntered(MouseEvente){

tf1.setText("Mouseenteredtheframe!");

}

publicvoidmouseExited(MouseEvente){

tf1.setText("Mouseexitedtheframe!");

}

publicvoidmousePressed(MouseEvente){

tf1.setText("Mousepressedintheframe!");

}

publicvoidmouseReleased(MouseEvente){

tf1.setText("Mousereleasedintheframe!");

}

publicvoidmouseClicked(MouseEvente){

tf1.setText("Mouseclickedintheframe!");

//以下2个方法是实现MouseMotionListener接口中的方法

publicvoidmouseMoved(MouseEvente){法

tf1.setText("Mousemovedintheframe!");

}

publicvoidmouseDragged(MouseEvente){

tf1.setText("Mousedraggedintheframe!");

}

}

classKeyHandlerextendsCanvasimplementsKeyListener{//处理键盘事件内部类

StringBuffersb;

KeyHandler(Dimensiond,Colorc){

sb=newStringBuffer();

this.setSize(d);

this.setBackground(c);

this.addKeyListener(this);

}

publicvoidkeyPressed(KeyEvente){ }

publicvoidkeyReleased(KeyEvente){}

publicvoidkeyTyped(KeyEvente){

tf2.setText(""+sb.append(e.getKeyChar()));

repaint();

}

publicvoidpaint(Graphicsg){

g.drawString(""+sb,10,20);

}

}

}

【运行结果】当鼠标进入窗口(上面白色区域)时,将在上面的文本框中显示鼠标动作,当用鼠标点击画布(下面有色区域)使画布获得焦点后,即可以用键盘输入数据,输入的数据在画布和下面的文本框中同时显示。

如下图:

浙大JAVA 实验题答案05answer1

实验5 分支结构程序的设计 1.程序填空题,不要改变与输入输出有关的语句。 20004 计算旅途时间 输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 有效的时间范围是0000到2359,不需要考虑出发时间晚于到达时间的情况。 例:括号内是说明 输入 712 1411(出发时间是7:12,到达时间是14:11) 输出 The train journey time is 6 hrs 59 mins. import java.util.Scanner; public class Test20004 { public static void main(String[] args) { Scanner in=new Scanner(System.in); int time1, time2, hours, mins; time1=in.nextInt(); time2=in.nextInt(); /*------------------*/ /*计算两个时间之间的小时数和分钟数*/ hours=time2/100-time1/100; mins=time2%100-time1%100; /*当计算得到的分钟数为负数时进行调整*/ hours=mins>0?hours:hours-1; mins=mins>0?mins:mins+60; //或:if(mins<0){hours-=1;mins+=60;} System.out.println("The train journey time is "+hours+" hrs "+ mins+" mins."); } } 30001 显示两级成绩 输入一个正整数repeat (0

浙大JAVA 实验题答案09answer

实验9-1 Method的使用(二) 1.程序填空题,不要改变与输入输出有关的语句。 50010 十进制转换二进制 输入一个正整数 repeat (0

n=n/2; //获得除2后的商 }while(n>0); System.out.print(t); //本方法无返回值,需要在方法体中输出结果 } } 说明:本题中方法dectobin(n)的输出虽然与要求有所出入,但上传是正确的。 以下用递归算法实现方法的设计: 50001 求1 + 1/2! +....+ 1/n! 输入一个正整数repeat (0

java实验答案解读

实验一 水仙花数: class shuixianhua {//水仙花数 public static void main(String arg[]) { int i,a,a1,b,b1,c; for(i=100;i<1000;i++) { a=i%10; a1=i/10; b=a1%10; b1=a1/10; c=b1%10; if(i==(a*a*a+b*b*b+c*c*c)) System.out.println(i); } } } 输出如下: 153 370 371 407 打印出100以内素数: public class sushu { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int i,j,k=0; for(i=2;i<100;i++){ if(i==2) System.out.println(i); i++; for(j=2;j

k=1; } if(k==1) System.out.println(i); } } 求1!+2!+ (20) public class jiecheng { public static void main(String[] args) { int i,sum=0,k; for(i=1;i<=20;i++) { k=ji(i); sum=k+sum; } System.out.print(sum); } static int ji(int n) { if(n==1) return 1; else return ji(n-1)*n; } } 习题2.6 public class Test{ public static void main(String[] args)//第19题,打出图形.菱形{ int n=3; for(int i=1;i<=n;i++) { for(int k=n-1;k>=i;k--) { System.out.print(" "); } for(int j=1;j<=2*i-1;j++)//打印* {

java实验题及答案

面向对象程序设计(Java)实验报告 实验四数组 指导教师:赵丹 姓名:刘坤(贵州民大)学号: 专业:信息管理与信息系统日期:2015-04-22 一、实验目的: 熟悉Java数组的创建、初始化、遍历、排序等操作。 二、实验内容: 1、将一个给定的整型数组转置输出, 例如:源数组,1 2 3 4 5 6 转置之后的数组,6 5 4 3 2 1。 2、现在有如下的一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ; 要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ; 3、现在给出两个数组: 数组a:“1,7,9,11,13,15,17,19”; 数组b:“2,4,6,8,10” 两个数组合并为数组c,按升序排列。 4、自己出一个和本章有关的有趣的题目,并编程解答。 三、实验步骤、分析与结论: 1、将一个给定的整型数组转置输出, 例如:源数组,1 2 3 4 5 6 转置之后的数组,6 5 4 3 2 1。 ①java程序如下: public class ArraySwap { public static void main(String[] args){ int oldArr[]=new int[]{1,2,3,4,5,6}; System.out.println("转置前的数组为:"); printArray(oldArr); //输出一维数组 int newArr[]=new int[oldArr.length]; for(int i=0;i

浙大JAVA实验题答案answer

实验8 Method的使用 1.程序填空题,不要改变与输入输出有关的语句。 50001 输入一个正整数repeat (0

最新JAVA实验6答案

广东海洋大学学生实验报告书(学生用表) 实验名称实验六. Java的接口与实现课程名称Java程序设计与开发 技术 课程号16232204 学院(系) 信息学院专业计算机科学与技术班级计科 学生姓名学号实验地点钟海楼 04019 实验日期 2015年 10月26日 一、实验目的 (1)学习掌握Java中类怎样实现接口、接口回调技术; (2)学习掌握Java 程序中面向接口的编程思想。 二、实验任务 完成实验六指导上实验1、实验2、实验3的实验任务。 三、实验仪器设备和材料 安装有J2SE开发工具的PC机。 四、实验内容和步骤 实验1 代码如下: Estimator.java interface CompurerAverage{ public double average(double x[]); } class Gymnastics implements CompurerAverage{ public double average(double x[]){ int count=x.length; double aver=0,temp=0; for(int i=0;i

aver=aver+x[i]; } if(count>2) aver=aver/(count-2); else aver=0; return aver; } } class School implements CompurerAverage{ public double average(double[] x){ int count=x.length; double sum=0; for(int i=0;i

浙大JAVA-实验题答案05answer1

浙大JAVA-实验题答案05answer1

实验5 分支结构程序的设计 1.程序填空题,不要改变与输入输出有关的语句。 20004 计算旅途时间 输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 有效的时间范围是0000到2359,不需要考虑出发时间晚于到达时间的情况。 例:括号内是说明 输入 712 1411(出发时间是7:12,到达时间是14:11) 输出 The train journey time is 6 hrs 59 mins. import java.util.Scanner; public class Test20004 { public static void main(String[] args) { Scanner in=new Scanner(System.in); int time1, time2, hours, mins; time1=in.nextInt(); time2=in.nextInt(); /*------------------*/ /*计算两个时间之间的小时数和分钟数*/ hours=time2/100-time1/100; mins=time2%100-time1%100; /*当计算得到的分钟数为负数时进行调整*/ hours=mins>0?hours:hours-1; mins=mins>0?mins:mins+60; //或:if(mins<0){hours-=1;mins+=60;} System.out.println("The train journey time is "+hours+" hrs "+ mins+" mins."); } } 30001 显示两级成绩 输入一个正整数repeat (0

JAVA实验6答案

GDOU-B-11-112 广东海洋大学学生实验报告书(学生用表) 实验名称 实验六.Java 的接口与实现 课程名称JaVa 程序设计与开发 课程号16232204 技术 实验地点钟海楼实验日期 2015年 04019 10 月 26 日 、实验目的 (1) 学习掌握Java 中类怎样实现接口、接口回调技术; (2) 学习掌握Java 程序中面向接口的编程思想。 二、实验任务 完成实验六指导上实验1、实验2、实验3的实验任务。 三、实验仪器设备和材料 安装有J2SE 开发工具的PC 机。 四、实验内容和步骤 实验1 代码如下: Estimator.java in terface Compu rerAverage{ p ublic double average(double x[]); } class Gymn astics imp leme nts Compu rerAverage{ p ublic double average(double x[]){ int coun t=x.le ngth; double aver=0,te mp=0; for(i nt i=0;i

aver=aver+x[i]; } if(cou nt>2) aver=aver/(co un t-2); else aver=0; retur n aver; } } class School impi eme nts Compu rerAverage{ p ublic double average(double[] x){ int coun t=x.le ngth; double sum=0; for(i nt i=0;i

java实验报告完整版

实验报告 (计算机与信息工程学院实验中心) 学期: 2014-2015 课程名称: 《Java程序设计实验》 班级: 信息1202 姓名: 方逸梅 学号: 1212100231 指导老师: 费玉莲 《Java程序设计》 独立实验教学安排 一、实验的教学方式、安排及实验环境 (一)教学方式 对照本课程的实验教材,实验一至实验十一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。实验十二的内容由学生自行设计完成。 (二)教学安排 学时数:30课时 学时安排:每次实验3学时,从学期第五周开始,共十次上机实验。 (三)实验环境 实验环境为JDK 1、6。

(四)具体安排 地点:信息大楼实验室。 辅导:每个班次一名辅导老师,原则上由任课老师担任。 登记:实验完成,由辅导老师登记实验纪录。 学生:实验做完,完成实验报告内容,并在学期末上交实验册。 老师:批改实验,成绩与平时成绩一起占期末的30%。 二、实验的具体内容与要求 见实验报告。

浙江工商大学 计算机与信息工程学院实验报告(1)日期:地点:成绩: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━实验目的、实验原理与内容: 一、实验目的:熟悉Java开发环境及简单程序Java设计。 二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。 三、实验内容及要求: 1. 下载、安装并设置Java SDK 软件包。 2. 熟悉Eclipse编辑软件。 3.掌握运行Java 程序的步骤。 4.分别编写Application与Applet程序,显示字符串”Hello Java!欢迎使用!”。 要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。 程序一 public class hello { public static void main(String[] args) { for(int i=0;i<=4;i++) { System、out、println("Hello java! 欢迎使用!"); } } } 结果示意图1

浙大JAVA 实验题答案14answer

实验14 类的设计和实验题库中未做的题 1.程序填空题,不要改变与输入输出有关的语句。 30009 求一元二次方程的根(选做) 输入一个正整数repeat (0

浙大JAVA 实验题答案07answer

实验7 循环结构程序的设计(二) 1.程序填空题,不要改变与输入输出有关的语句。 40004 求1-1/2+1/3-1/4+…… 输入一个正整数repeat (0

读入1 个正实数eps,计算并输出1-1/3+1/5-1/7+……,直到最后一项的绝对值小于eps为止(要求每一项的绝对值均大于等于eps,并以float类型输出数据)。 例:括号内是说明 输入 2 (repeat=2) 1E-4 输出 import class Test40006 { public static void main(String[] args) { int ri, repeat; int temp, flag; double eps, item, sum; Scanner in=new Scanner; repeat=(); for(ri=1; ri<=repeat; ri++){ eps=(); /*--------------------*/ item=1; sum=0; temp=flag=1; while(item)>=eps){ sum+=item; flag=-flag; temp+=2; item=flag*temp; } } } } 40011 求2/1+3/2+5/3+8/5+... 输入一个正整数repeat (0

武科大_java实验答案_全

补充第一节的容 public class MyJavaClass { int a; myjavaclass(int a){this.a=a;} public void main() { myjavaclass c1=new MyJavaClass(); System.out.printIn(c1.a); } System.out.printIn("程序结束。"); } 1.上面的程序有几处错误?请依次改正。 2.这个程序的源代码应该保存为什么名字的文件? 3.请写出编译和运行这个文件的完整命令,注意给出环境变量的设置(假设源 文件保存在d:\java目录) 4.如果在程序最前面加入下面语句: package Pkg; 该程序又该如何编译和运行? 答案: 答案(1):修改以后的程序为(粗体为修改过的地方) public class MyJavaClass { int a; MyJavaClass(int a){this.a=a;} public Static void main(String args[]) { MyJavaClass c1=new MyJavaClass(2) //此处的实际参数可为任意整数; System.out.println(c1.a); System.out.println("程序结束。"); } } 答案(2) public class MyJavaClass { int a; int myjavaClass(int a){this.a=a;return a;}//注此处函数返回值可为任意类型 public static void main(String args[]) { MyJavaClass c1=new MyJavaClass(); System.out.println(c1.a);System.out.println("程序结束。"); } }

Java 2实用(第4版)实验指导与习题解答_IT168文库答辩

上机实践1初识Java 实验1一个简单的应用程序 1.相关知识点 Java语言的出现是源于对独立于平台语言的需要,即这种语言编写的程序不会因为芯片的变化而发生无法运行或出现运行错误的情况。目前,随着网络的迅速发展,Java语言的优势越发明显,Java已经成为网络时代最重要的语言之一。 Sun公司要实现“编写一次,到处运行”(Write once,run anywhere的目标,就必须提供相应的Java运行平台,目前Java运行平台主要分为下列3个版本。 (1Java SE:称为Java标准版或Java 标准平台。Java SE 提供了标准的JDK开发平台。利用该平台可以开发Java桌面应用程序和低端的服务器应用程序,也可以开发Java Applet 程序。当前成熟的新的JDK版本为JDK 1.6。 (2Java EE:称为Java企业版或Java企业平台。使用J2EE可以构建企业级的服务应用,Java EE平台包含了Java SE平台,并增加了附加类库,以便支持目录管理、交易管理和企业级消息处理等功能。 (3Java ME:称为Java微型版或Java小型平台。Java ME是一种很小的Java运行环境,用于嵌入式的消费产品中,如移动电话、掌上电脑或其他无线设备等。 无论上述哪种Java运行平台都包括了相应的Java虚拟机(Java Virtual Machine,虚拟机负责将字节码文件(包括程序使用的类库中的字节码加载到内存,然后采用解释方式来执行字节码文件,即根据相应硬件的机器指令翻译一句执行一句。J2SE平台是学习掌握Java语言的最佳平台,而掌握J2SE又是进一步学习J2EE和J2ME所必需的。 2.实验目的

java上机实验答案与解析

JAVA上机实验题答案与解析 实验一 Java程序编程 1.编写一个Java应用程序,输出容为Hello!。 注:文件位置位于e:\2:\Hello.java 编译:(1)e:(2)cd 2 (3)javac Hello.java(4)java Hello 2.编写一个Java小应用程序,输出容为我一边听音乐,一边学Java。 第一步编写 import java.awt.*; import java.applet.*; public class MyApplet extends Applet{ public void paint(Graphics g){ g.drawString("我一边听音乐,我一边做java",25,25); } } 第二步在DOS环境中编译(....javac MyApplet.java) 第三步使用记事本编写 第四步将记事本文件名命名为MyApplet.html 第五步打开MyApplet.html 实验二类的定义 1.编写Java应用程序,自定义Point类,类中有两个描述坐标位置的double 变量x,y,利用构造方法,实现对Point 对象p1,p2初始化,p1和p2对应坐标分别为(15,20),(10,30);定义方法getX(),getY()分别获得点的横坐标和纵坐标;定义方法setX(),setY()分别获得点的横坐标和纵坐标;并且把p1和p2输出; public class Point { double x,y; Point(double x,double y){ this.x=x; this.y=y; } double getX(){ return x; } double getY(){ return y; } void setX(double x){ this.x=x;

java实验报告实验3答案

实验三熟悉常用java工具包并运用编程 实验目的: 本实验旨在巩固同学们对上课所讲java.util工具包中Collection,List,Set,Map加深理解,对其用法编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。 实验内容: 本实验的内容为:用Collection,List,Set,Map来存储数据,并进行排序,任何用Iterator,ListIterator或者Enumeration来打印其结果(按顺序和降序排列打印)。共分为四部分部分(前三部分必做,如果选第四个,前三个可以不做。。): (1)按顺序把1,10,5,7,6,2,9,20,14,存入到List中(注:允许自己自定义任何数),并对其进行排序,打印其升序和降序排列的结果。然后再向List中位置为第四位插入数35看看会有啥结果?再向List中插入字符串“ddy”,试猜想排序是否会出错?然后看看运行结果是啥? 程序: import java.util.*; public class SY3 { public SY3() { List list=new ArrayList(); list.add(1); list.add(10); list.add(5); list.add(7); list.add(6); list.add(2); list.add(9); list.add(20); list.add(14); list.add(35); list.add("ddy"); System.out.println("原序列:"); for(int i=0;i<=list.size()-1;i++) { System.out.println(list.get(i)); } System.out.println("新序列"); for(int i=0;i<=list.size()-1;i++) {

JAVA实验2答案

实验二. Java基本数据类型Java程序设计与开发实验名称课程名称课程号 技术与数组 计科班级专业计算机科学与技术学院(系) 信息学院 2015年钟海楼实验地点学号学生姓名实验日期月17日904019 一、实验目的 Java数据类型之间的转换;)学习掌握(1 Java 程序中数组的 使用。(2)学习 二、实验任务 3的实验任务。、实验2和实验完成实验二指导上实验 1 三、实验仪器设备和材料 PC机。安装有J2SE开发工具的 四、实验内容和步骤输出希腊字母表实验1 应用程序,该程序在命令行窗口输出希腊字母表。编写一个Java 代码如下: public class GreekAlphabet{ public static void main(String[] args) { int startPosition=0,endPosition=0; char cStart='α',cEnd='ω'; startPosition = (int)cStart; endPosition = (int)cEnd; +startPosition);表中的顺序位置:\'在Unicode 希腊字母\'α ); 希腊字母表: for(int i=startPosition; i<=endPosition; i++){ char c='\0'; c = (char)i; +c); if((i-startPosition+1)_x0010_==0) \); } \); } } 运行结果: 实验后的练习型变量,程序编译时提示怎样的错误。型数据直接赋值float(1)

将一个double float可能会有损失:5: 错误: 不兼容的类型: 从double转换到 :)(2 在应用程度的main()方法中增加语句 float x= ; 程序能编译通过吗 : 不兼容的类型从double转换到float可能会有损失不能,:3: 错误: 应用程度的main()方法中增加语句:(3) int z = (byte)128 的值是多少程序输出变量z 运行结果: 数组的引用与元素实验2 Java编写一个应用程序,该程序在命令行窗口输出数组的引用以及元素的值。代码如下: public class InputArray{ public static void main(String[] args) { int[] a={100,200,300}; 4,6,4,1}}; b[4]=a; } } 运行结果: 实验后的练习”,编译是否有错运行是否有错4之后增加语句“a[3]=200;在程序的代码)(1 编译通过。运行错误。提示 Exception in thread main 3 b的各个一维数组的长度和引用。在程序的代码4之前输出二维数组(2)增加代码: for(int i=0;i<;i++){ } 运行结果: 的各个一维数组的长度和引用。4之后输出二维数组b(3)在程序的代码增加代码同上。运行结果: 遍历与复制数组实验3 的全部或部分元素复a的全部元素,并将数组Java应用程序,输出数组a编写一个 a的全部元素。制到其他数组中,然后改变其他数组的元素的值,再输出数组代码如下:

清华大学出版社 Java课后答案

第1章: 参考答案: 习题集: 一、填空题 1.多态 2.java.exe 3.jdb.exe 4.标准字节码 5.java 6.独立于平台 二、选择题 1.B 2.A 3.B 4.A 5.A 6.C 7.C 8.D 9.C 第2章: 参考答案: 实验指导: 2.5.1.第一处需要的代码:yourGuess>realNumber 第二处需要的代码:yourGuess=input.nextInt(); 第三处需要的代码:yourGuess

java实验报告完整版

java实验报告完整版 验报告(计算机与信息工程学院实验中心)学期: 全文结束》》-xx 课程名称: 《Java程序设计实验》班级: 信息1202 姓名: 方逸梅学号:1212100231 指导老师: 费玉莲《Java程序设计》独立实验教学安排 一、实验的教学方式、安排及实验环境 (一)教学方式对照本课程的实验教材,实验一至实验一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。实验二的内容由学生自行设计完成。 (二)教学安排学时数:30课时学时安排:每次实验3学时,从学期第五周开始,共次上机实验。 (三)实验环境实验环境为JDK 1、6。 (四)具体安排地点:信息大楼实验室。辅导:每个班次一名辅导老师,原则上由任课老师担任。登记:实验完成,由辅导老师登记实验纪录。学生:实验做完,完成实验报告内容,并在学期末上交实验册。老师:批改实验,成绩与平时成绩一起占期末的30%。

二、实验的具体内容和要求见实验报告。浙江工商大学计算机与信息工程学院实验报告(1)日期: 地点: 成绩: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 实验目的、实验原理和内容: 一、实验目的:熟悉Java开发环境及简单程序Java设计。 二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。 三、实验内容及要求: 1、下载、安装并设置Java SDK 软件包。 2、熟悉Eclipse 编辑软件。 3、掌握运行Java 程序的步骤。 4、分别编写Application和Applet程序,显示字符 串”Hello Java!欢迎使用!”。要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。程序一public class hello {public static void main(String[] args) {for(int i=0;i<=4;i++){System、out、println("Hello java! 欢迎使用!");}}}结果示意图1存在的问题

java实验答案全

实验3:Java流程控制及数组 4.编写一个Java Application程序,输出区间[200,300]上的所有素数,要求写出程序的运行结果。 实验4:Java类与对象 1.编写一个Java程序片断,以定义一个表示学生的类Student。这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得性别”、“获得年龄”。 2.为类Student增加一个方法public String toString( ),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。编写一个Java Application程序,创建Student类的

3.按下面的要求完成Java Application程序,写出程序的运行结果。 (1)定义一个Java类Point,用来描述平面直角坐标系中点的坐标,该类应该能描述点的横、纵坐标信息及一些相关操作,包括获取点的横、纵坐标,修改点的坐标,显示点的当前位置等。

实验5:Java继承与多态 2.假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均分超过80分才能够通过。根据上述要求,请完成以下Java类的设计: (1)设计一个基类Student描述学生的共同特征。 (2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。 (3)设计一个描述研究生的类Graduate,该类继承并扩展Student类。 (4)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相

相关文档
最新文档