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

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

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

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

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

this.y=y;

doublegetX(){

returnx;

}

doublegetY(){

returny;

voidsetX(doublex){

voidsetY(doubley){

publicstaticvoidmain(String[]args){

Pointp1=newPoint(15,20);

//初始化

Pointp2=newPoint(10,30);

System.out.println("

横坐标为"

+p1.x+"

纵坐标为"

+p1.y);

+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;

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){

voidsetRadius(doubler){

doublegetRadius(){

returnr;

return(3.14*r*r);

doublegetCircumference(){

return3.14*2*r;

voidsetCenter(doublex,doubley){

doublegetCenterx(){

doublegetCentery(){

publicclassA{

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

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){

doublegetWidth(){

returna;

doublegetHeight(){

returnb;

area=a*b;

returnarea;

publicstaticvoidmain(Stringargs[]){

Rectrect=newRect();

doublew=12.76,h=25.28;

rect.setWidth(w);

rect.setHeight(h);

矩形对象的宽:

"

+rect.getWidth()+"

高:

+rect.getHeight());

矩形的面积:

+rect.getArea());

答案:

圆的的面积:

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++;

returncountTiger;

publicclassSouthEastTigerextendsTiger{}

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];

case2:

intc[]=newint[2];

k=c[9];

case3:

charch="

abc"

.charAt(99);

packageException;

publicclassTestException{

publicstaticvoidmain(String[]args){

for(inti=0;

try{

intk;

switch(i){

case0:

intzero=0;

case1:

intb[]=null;

k=b[0];

case2:

intc[]=newint[2];

case3:

charch="

}

}

catch(ArithmeticExceptione){

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

catch(java.lang.NullPointerExceptione){

catch(ArrayIndexOutOfBoundsExceptione){

catch(java.lang.StringIndexOutOfBoundsExceptione){

/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包中。

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

publicclassInsufficientFundsExceptionextendsException{

Strings1;

InsufficientFundsException(Stringt){

s1=t;

publicStringgetMassage1(){

returns1;

publicclassNagativeFundsExceptionextendsException{

Strings;

NagativeFundsException(Stringt){

s=t;

publicStringgetMassage(){

returns;

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));

importjava.util.*;

publicclassA{

publicstaticvoidmain(Stringargs[]){

Bankb=newBank(100);

Scannersc=newScanner(System.in);

try{

请输入一个数"

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的源程序存入

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())!

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。

publicclassBinIoDemo{

Filef1=newFile("

\\1.doc"

FileInputStreamin=newFileInputStream(f1);

Filef2=newFile("

\\“学号〞+“〞.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