System.out.print(a[i][j]);
System.out.println();}
}
}
7.写出以下程序的运行结果。
classSuperTest{
publicSuperTest(){
System.out.println("SuperTest");
showInfo();
}
publicvoidshowInfo(){
System.out.println("inSuperTest");
}
}
publicclassTest_7extendsSuperTest{
publicTest_7(){
System.out.print("Test_7");
}
publicvoidshowInfo(){
System.out.println("inTest_7");
}
publicstaticvoidmain(String[]args){
newTest_7();
}
}
8.写出以下程序的运行结果。
classMyExceptionextendsException
{
publicStringtoString(){return"负数引发异常";}
}
publicclassTest_8{
publicstaticvoidmySqrt(inta)throwsMyException
{
if(a<0)thrownewMyException();
System.out.println(Math.sqrt(a));
}
publicstaticvoidmain(Stringargs[])
{
try{mySqrt(9);mySqrt(-9);}
catch(MyExceptione){System.out.println(e);}
}
}
9.阅读以下程序,假定服务器端和客户端程序正常运行无异常发生。
①写出该程序的功能。
(4分)
②客户端发送0对于服务器端而言意味着什么?
(4分)
//服务器端程序
importjava.io.*;
import.*;
publicclassServer
{publicstaticvoidmain(String[]args)
{try
{
ServerSocketserverSocket=newServerSocket(8000);
SocketconnectToClient=serverSocket.accept();
DataInputStreamisFromClient=newDataInputStream(connectToClient.getInputStream());
DataOutputStreamosToClient=newDataOutputStream(connectToClient.getOutputStream());
while(true)
{doubleradius=isFromClient.readDouble();
if(radius==0)
break;
else
{System.out.println("radiusreceivedfromclient:
"+radius);
doublearea=radius*radius*Math.PI;
osToClient.writeDouble(area);
osToClient.flush();
System.out.println("Areafound:
"+area);}
}
isFromClient.close();
osToClient.close();
connectToClient.close();
}
catch(IOExceptionex)
{System.err.println(ex);}
}
}
//客户端程序
importjava.io.*;
import.*;
publicclassClient
{publicstaticvoidmain(String[]args)
{try
{SocketconnectToServer=newSocket("localhost",8000);
DataInputStreamisFromServer=newDataInputStream(
connectToServer.getInputStream());
DataOutputStreamosToServer=
newDataOutputStream(connectToServer.getOutputStream());
while(true)
{System.out.print("Pleaseenteraradius:
");
doubleradius=Double.parseDouble(
newBufferedReader(newInputStreamReader(System.in),1).readLine());
if(radius==0)
{osToServer.writeDouble(radius);
osToServer.flush();
break;}
else{if(radius>0)
{osToServer.writeDouble(radius);
osToServer.flush();
doublearea=isFromServer.readDouble();
System.out.println("Areareceivedfromtheserveris"+area);}
}}
isFromServer.close();
osToServer.close();
connectToServer.close();
}
catch(IOExceptionex){System.err.println(ex);}
}
}
四、编程题
编写一个完整的JavaApplication程序。
包含接口ShapeArea,类MyTriangle,类Test,具体要求如下:
⑴接口ShapeArea
doublegetArea():
求一个形状的面积
doublegetPerimeter():
求一个形状的周长
⑵类MyTriangle
实现ShapeArea接口,并有以下属性和方法:
1属性
x,y,z:
double型,表示三角形的三条边
s:
周长的1/2(注:
求三角形面积公式为
,s=(x+y+z)/2,开方可用Math.sqrt(double)方法)
2方法
MyTriangle(doublex,doubley,doublez):
构造函数,给三条边和s赋初值,若不能构成三角形则给出提示并结束程序。
toString():
输出矩形的描述信息,如“threesides:
3.0,4.0,5.0,perimeter=12.0,area=6.0”
⑶Test类作为主类要完成测试功能
1生成MyTriangle对象
②调用对象的toString方法,输出对象的描述信息
(注:
程序框架已给出)
importjava.io.*;
publicclassTest//主类定义(3分)
{
}
interfaceShapeArea//接口定义(2分)
{
}
classMyTriangleimplementsShapeArea{
doublex,y,z;
doubles;
MyTriangle(doublet1,doublet2,doublet3)//构造方法
{
}
publicdoublegetPerimeter()//求周长方法
{
}
publicdoublegetArea()//求面积方法
{
}
publicStringtoString()