java上机实验答案及解析Word下载.docx
- 文档编号:22110872
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:31
- 大小:39.98KB
java上机实验答案及解析Word下载.docx
《java上机实验答案及解析Word下载.docx》由会员分享,可在线阅读,更多相关《java上机实验答案及解析Word下载.docx(31页珍藏版)》请在冰豆网上搜索。
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(){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 上机 实验 答案 解析