《Java程序设计》练习题 下载本文

6. public MyCircle(double r){ 7. this.r=r; 8. }

9. public double CalsulateArea(){ 10. return Math.PI*r*r; 11. } 12. }

13. class MyRectangle implements Area{ 14. double width,height;

15. public MyRectangle(double w,double h){ 16. width=w; 17. height=h; 18. 19. }

20. public double CalsulateArea(){ 21. return width*height; 22. } 23. }

24. class TestArea{

25. public static void main(String []args){

26. //创建MyCircle的对象,对象名为c 27. System.out.println(\28. //创建MyRectangle的对象,对象名为r 29. System.out.println(\area of the Rectangle is \30. 31. } 32. }

7、仔细阅读下面的程序代码,请将划线上①~④的语句补充完整。 import java.awt.*;

import java.awt.event.*;

public class MyFrameCanExit extends Frame implements ① { public MyFrameCanExit(String str){ super(str); }

public void windowClosing( ② e) { System.exit(0);

}

public void windowClosed(WindowEvent e) { } public void windowOpened(WindowEvent e) { } public void windowIconified(WindowEvent e) { } public void windowDeiconified(WindowEvent e) { } public void windowActivated(WindowEvent e) { }

第 37 页 共 48 页

public void windowDeactivated(WindowEvent e) { }

public static void main(String args[ ]){

MyFrameCanExit fr = new MyFrameCanExit(\

fr. ③ (fr); //注册窗口事件监听器。 fr. ④ (200,200); fr.setVisible(true); }

8、下面是一个支持多个客户端交互的程序,请根据注释要求补充、完成代码: import java.io.*;

______________________ //加载网络API包 public class ServerThread extends Thread{ Socket socket=null; int clientnum;

public ServerThread(Socket socket,int num) { this.socket=socket; clientnum=num+1; }

public void run() { try{

String line;

InputStream in=__________________________//得到socket的输入流 BufferedReader is=new BufferedReader(new InputStreamReader(in)); PrintWriter os=new PrintWriter(socket.getOutputStream());

//由系统标准输入设备构造BufferedReader对象 BufferedReader sin=new BufferedReader

(_______________________________________);

System.out.println(\ line=sin.readLine();

while(!line.equals(\ os.println(line);

// 刷新输出流,使Client马上收到该字符串 ______________________________

System.out.println(\

System.out.println(\ line=sin.readLine(); }

os.close();//关闭Socket输出流 is.close(); //关闭Socket输入流 socket.close(); //关闭Socket对象 }catch(Exception e){

第 38 页 共 48 页

System.out.println(\ } } }

9、阅读下面代码片段,根据注释要求补充、完成代码。(带*号行是需要补充的地方) import java.io.*; import java.net.*;

public class SocketExample {

public static void main(String[] args) { ServerSocket server; Socket socket;

ObjectOutputStream output; ObjectInputStream input; try{

//创建一个端口号为6000,可有50个客户同时连接的服务器流套接字 * socket = server.accept();

//创建一个Object输出流用来向客户发送数据

* output.flush();

//创建一个Object输入流用来接收客户发送的数据

* //关闭输出输入流

* * socket.close();

}catch(IOException ioException) {

System.out.println(\捕获一个I/O异常\ } } }

10、通过TCP协议方式,定义一个服务器端,端口为5000,要求可以同时连接多个客户端,并且每个客户端在休眠10秒钟之后退出连接;将下面的程序补齐:

import java.net.*; import java.io.*;

public class ServerExample implements { private Socket m_socket; private int m_id;

public (Socket s, int id) { m_socket= s; m_id= id; }

public void {

第 39 页 共 48 页

try { . sleep(10000);

System.out.println(\ m_socket.close();

} catch (Exception e) {} }

public static void main(String args[]){ int n= 1;

server= null; try{

server= new (5000);

System.out.println( \ }

catch (IOException e){} while (true){ try{

System.out.println(\ s= server.accept( );

ServerExample t=new ServerExample(s, n++); th =new Thread( ); .start( ); }

catch (IOException e){} } // End of loop: while } // End of method: main }

11、下面是一个Java Applet的程序代码和相应的html文件,若Applet的.class文件和html文件在同一个目录,请根据注释要求补充、完成代码(划线是需要补充的地方)。

//加载Applet类的包 import java.awt.*;

public class Welcome extends Applet{

_______________________________{ //paint方法说明

//在(25,25)位置画出“Welcome!” } }

Welcome

//包含上述Applet,高200宽300像素

第 40 页 共 48 页