java上机实验答案及解析.docx

上传人:b****7 文档编号:8974732 上传时间:2023-02-02 格式:DOCX 页数:31 大小:39.98KB
下载 相关 举报
java上机实验答案及解析.docx_第1页
第1页 / 共31页
java上机实验答案及解析.docx_第2页
第2页 / 共31页
java上机实验答案及解析.docx_第3页
第3页 / 共31页
java上机实验答案及解析.docx_第4页
第4页 / 共31页
java上机实验答案及解析.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

java上机实验答案及解析.docx

《java上机实验答案及解析.docx》由会员分享,可在线阅读,更多相关《java上机实验答案及解析.docx(31页珍藏版)》请在冰豆网上搜索。

java上机实验答案及解析.docx

java上机实验答案及解析

JAVA上机实验题答案与解析

实验一Java程序编程

1.编写一个Java应用程序,输出容为Hello!

注:

文件位置位于e:

\2:

\Hello.java编译:

(1)e:

(2)cd2(3)javacHello.java(4)javaHello

2.编写一个Java小应用程序,输出容为我一边听音乐,一边学Java。

第一步编写

importjava.awt.*;

importjava.applet.*;

publicclassMyAppletextendsApplet{

publicvoidpaint(Graphicsg){

g.drawString("我一边听音乐,我一边做java",25,25);

}

}

第二步在DOS环境中编译〔....javacMyApplet.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输出;

publicclassPoint{

doublex,y;

Point(doublex,doubley){

this.x=x;

this.y=y;

}

doublegetX(){

returnx;

}

doublegetY(){

returny;

}

voidsetX(doublex){

this.x=x;

}

voidsetY(doubley){

this.y=y;

}

publicstaticvoidmain(String[]args){

Pointp1=newPoint(15,20);//初始化

Pointp2=newPoint(10,30);

System.out.println("横坐标为"+p1.x+"纵坐标为"+p1.y);

System.out.println("横坐标为"+p2.getX()+"纵坐标为"+p2.getY());

}

}

运行结果:

横坐标为15.0纵坐标为20.0

横坐标为10.0纵坐标为30.0

2.编写Java应用程序,自定义Circle类,类中有两个double变量r,s,一个类变量pi,利用构造方法实现对半径是3和5.5的初始化,自定义getArea方法实现圆面积求解;

publicclassCircle{

doubles,r;

staticdoublepi=3.14159265;

publicCircle(doubler){

this.r=r;

}

doublegetArea(){

this.s=pi*r*r;

returns;

}

publicstaticvoidmain(String[]args){

Circlec1=newCircle(3);

Circlec2=newCircle(5.5);

System.out.println(c1.getArea());

System.out.println(c2.getArea());

}

}

实验三类的继承和多态性

1.

(1)编写一个接口ShapePara,要求:

接口中的方法:

intgetArea():

获得图形的面积。

intgetCircumference():

获得图形的周长

(2)编写一个圆类Circle,要求:

圆类Circle实现接口ShapePara。

该类包含有成员变量:

radius:

public修饰的double类型radius,表示圆的半径。

x:

private修饰的double型变量x,表示圆心的横坐标。

y:

protected修饰的double型变量y,表示圆心的纵坐标。

包含的方法有:

Circle(doubleradius)有参构造方法。

以形参表中的参数初始化半径,圆心为坐标原点。

doublegetRadius():

获取半径为方法的返回值。

voidsetCenter(doublex,doubley):

利用形参表中的参数设置类Circle的圆心坐标。

voidsetRadius(doubleradius):

利用形参表中的参数设置类Circle的radius域。

在主方法中产生半径为5的圆。

interfaceShapePara{

doublegetArea(doubler);

doublegetCircumference(doubler);

}//注:

Circle是在接口中建立的calss,即先建立接口,在建立接口的类

classCircleimplementsShapePara{

privatedoublex;

protecteddoubley;

publicdoubler;

Circle(doubler){

this.r=r;

}

voidsetRadius(doubler){

this.r=r;

}

doublegetRadius(){

returnr;

}

doublegetArea(){

return(3.14*r*r);

}

doublegetCircumference(){

return3.14*2*r;

}

voidsetCenter(doublex,doubley){

this.x=x;

this.y=y;

}

doublegetCenterx(){

returnx;

}

doublegetCentery(){

returny;

}

}

publicclassA{

publicstaticvoidmain(String[]args){

Circleci=newCircle(5);

ci.setRadius(5);

ci.setCenter(0,0);

System.out.println(ci.getArea());

System.out.println(ci.getCircumference());

System.out.println(ci.getCenterx());

System.out.println(ci.getCentery());

}

}答案:

78.5

31.400000000000002

0.0

0.0

2.定义图形类Shape,该类中有获得面积的方法getArea();定义长方形类Rect,该类是Shape的子类,类中有矩形长和宽的变量doublea,doubleb,设置长和宽的方法setWidth()、setHeight(),使用getArea()求矩形面积;利用getArea方法实现题1中圆面积的求解。

classShape{

doublegetArea(doubler){

return0;

}

}

publicclassRectextendsShape{

doublea,b,area;

Rect(doublewidth,doubleheigh){

a=width;

b=height;;

}

voidsetWidth(doublewidth){

a=width;

}

voidsetHeight(doubleheight){

b=height;

}

doublegetWidth(){

returna;

}

doublegetHeight(){

returnb;

}

doublegetArea(){

area=a*b;

returnarea;

}

}

publicclassA{

publicstaticvoidmain(Stringargs[]){

Rectrect=newRect();

doublew=12.76,h=25.28;

rect.setWidth(w);

rect.setHeight(h);

System.out.println("矩形对象的宽:

"+rect.getWidth()+"高:

"+rect.getHeight());

System.out.println("矩形的面积:

"+rect.getArea());

}

}

答案:

圆的的面积:

78.5

矩形对象的宽:

12.76高:

25.28

矩形的面积:

322.57280000000003

3.编写Java应用程序,定义Animal类,此类中有动物的属性:

名称name,腿的数量legs,统计动物的数量count;方法:

设置动物腿数量的方法voidsetLegs(),获得腿数量的方法getLegs(),设置动物名称的方法setKind(),获得动物名称的方法getKind(),获得动物数量的方法getCount()。

定义Fish类,是Animal类的子类,统计鱼的数量count,获得鱼数量的方法getCount()。

定义Tiger类,是Animal类的子类,统计老虎的数量count,获得老虎数量的方法getCount()。

定义SouthEastTiger类,是Tiger类的子类,统计老虎的数量count,获得老虎数量的方法getCount()。

publicclassAnimal{

Stringname;

intlegs;

staticintcount;

Animal(){count++;}

voidsetLegs(intlegs){

this.legs=legs;

}

intgetLegs(){

returnlegs;

}

voidsetKind(Stringname){

this.name=name;

}

StringgetKind(){

returnname;

}

intgetCount(){

returncount;

}

}

publicclassFishextendsAnimal{

staticintcountFish;

Fish(){countFish++;}

intgetCount(){

returncountFish;

}

}

publicclassTigerextendsAnimal{

staticintcountTiger;

Tiger(){countTiger++;}

intgetCount(){

returncountTiger;

}

}

publicclassSouthEastTigerextendsTiger{}

publicclassA{

publicstaticvoidmain(Stringargs[]){

Fishf=newFish();

System.out.println(f.getCount());

Tigert=newTiger();

System.out.println(t.getCount());

SouthEastTigerst=newSouthEastTiger();

System.out.println(st.getCount());

}

}

实验四异常处理

1.建立exception包,编写TestException.java程序,主方法中有以下代码,确定其中可能出现的异常,进展捕获处理。

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

intk;

switch(i){

case0:

intzero=0;k=911/zero;break;

case1:

intb[]=null;k?

=b[0];break;

case2:

intc[]=newint[2];k=c[9];break;

case3:

charch="abc".charAt(99);break;

}

}

packageException;

publicclassTestException{

publicstaticvoidmain(String[]args){

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

try{

intk;

switch(i){

case0:

intzero=0;k=911/zero;break;

case1:

intb[]=null;k=b[0];break;

case2:

intc[]=newint[2];k=c[9];break;

case3:

charch="abc".charAt(99);break;

}

}

catch(ArithmeticExceptione){

System.out.println(e.getMessage());

}

catch(java.lang.NullPointerExceptione){

System.out.println(e.getMessage());

}

catch(ArrayIndexOutOfBoundsExceptione){

System.out.println(e.getMessage());

}

catch(java.lang.StringIndexOutOfBoundsExceptione){

System.out.println(e.getMessage());

}

}

}

}

运行结果:

/byzero

null

9

Stringindexoutofrange:

99

2.建立exception包,建立Bank类,类中有变量doublebalance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的发方法withDrawal(doubledAmount),当取款的数额大于存款时,抛出InsufficientFundsException,取款数额为负数,抛出NagativeFundsException,如newBank(100),表示存入银行100元,当用方法withdrawal(150),withdrawal(-15)时会抛出自定义异常。

提示:

InsufficientFundsException,NagativeFundsException为自定义的类,分别产生余额缺乏异常和取款为负数异常,需继承Exception类。

通过输出结果了解java异常的产生,并将该Java程序放在exception包中。

packageException;//注解先建立一个package,然后在包中建立各种类

publicclassInsufficientFundsExceptionextendsException{

Strings1;

InsufficientFundsException(Stringt){

s1=t;

}

publicStringgetMassage1(){

returns1;

}

}

packageException;

publicclassNagativeFundsExceptionextendsException{

Strings;

NagativeFundsException(Stringt){

s=t;

}

publicStringgetMassage(){

returns;

}

}

packageException;

publicclassBankextendsException{

staticdoubleba=0;

Bank(doubler){

ba=ba+r;

}

voidwithDrawal(doubledAmount)throwsInsufficientFundsException,NagativeFundsException{

if(dAmount>ba)thrownewInsufficientFundsException("取款余额缺乏");

elseif(dAmount<0)thrownewNagativeFundsException("取款为负数");

else

System.out.print("银行里还剩余:

"+(ba-dAmount));

}

}

packageException;

importjava.util.*;

publicclassA{

publicstaticvoidmain(Stringargs[]){

Bankb=newBank(100);

Scannersc=newScanner(System.in);

try{

System.out.println("请输入一个数");

b.withDrawal(sc.nextInt());

}

catch(InsufficientFundsExceptione){

System.out.println(e.getMassage1());

}

catch(NagativeFundsExceptione){

System.out.println(e.getMassage());

}

}

}

运行结果:

请输入一个数

80

银行里还剩余:

20.0

实验五输入输出

1.编写TextRw.java的Java应用程序,程序完成的功能是:

首先向TextRw.txt中写入自己的学号和,读取TextRw.txt息并将其显示在屏幕上。

importjava.io.*;

publicclassTextRw{

publicstaticvoidmain(String[]args)throwsIOException{

Filef=newFile("f:

\\TextRw.txt");

FileWriterfw=newFileWriter(f);

fw.write("学号");

fw.close();

FileReaderfr=newFileReader(f);

inti;

while((i=fr.read())!

=-1)

System.out.print((char)i);

fr.close();

}

}

2.编写IoDemo.java的Java应用程序,程序完成的功能是:

首先读取IoDemo.java源程序文件,再通过键盘输入文件的名称为iodemo.txt,把IoDemo.java的源程序存入

importjava.io.*;

publicclassTextRw{

publicstaticvoidmain(String[]args)throwsIOException{

Stringf="e:

\\hello.java";

FileReaderr=newFileReader(f);

inti;

while((i=r.read())!

=-1){

System.out.print((char)i);

}

r.close();

BufferedReaderw=newBufferedReader(newInputStreamReader(System.in));

System.out.print("请目录和输入文本名");

Stringf1=w.readLine();

FileWriterw1=newFileWriter(f1);

FileReaderr1=newFileReader(f);

intj;

while((j=r1.read())!

=-1){

w1.write((char)j);

}

w1.close();

}

}

运行结果:

publicclassHello{

publicstaticvoidmain(String[]args){

System.out.println("hello");

}

}请目录和输入文本名e:

\\Hello.text

且会在e目录下产生Hello.text

3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:

完成1.doc文件的复制,复制以后的文件的名称为自己的学号.doc。

importjava.io.*;

publicclassBinIoDemo{

publicstaticvoidmain(String[]args)throwsIOException{

Filef1=newFile("e:

\\1.doc");

FileInputStreamin=newFileInputStream(f1);

Filef2=newFile("e:

\\“学号〞+“〞.doc");

FileOutputStreamout=newFileOutputStream(f2);

byte[]buf=newbyte[2048];

intnum=in.read(buf);

while(num!

=(-1)){

out.write(buf,0,num);

out.flush();

num=in.read(buf);

}

in.close();

out.close();

}

}

实验六多线程编程

1.随便选择两个城市作为预选旅游目标。

实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以),哪个先显示完毕,就决定去哪个城市。

分别用Runnable接口和Thread类实现。

通过Thread

publicclassHw1ThreadextendsThread{

Stringa;

privateintsleepTime;

publicHw1Thread(Stringa){

super(a);

this.a=a;

sleepTime=(int)(Math.random()*6000);

}

publicvoidrun(){

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1