看到别人的代码....有些疑问
public class chessServer extends Frame implements ActionListener 
{
   //MessageServer是继承于Panel的,实现一些界面
   private MessageServer server = new MessageServer();
   chessServer() 
   {
     ......省略代码
     makeMessageServer(4331, server);
   }
   public void makeMessageServer(int port, MessageServer server)throws IOException 
   {
     ......
     this.server = server;???这里不明白   
     server.messageTextArea.setText(..........);
   }
}
请问this.server=server;这条语句有什么用??
makeMessageServer()方法头中声明的server形参不是接受第一个server作为实参传递进来的吗??this.server和这个server应该是完全一样的,为什么还要这么一句,我觉得好象是自己又给自己赋值一遍....
而且makeMessageServer()下面的代码没用到this.server,但是把这句注释了程序又有错误

解决方案 »

  1.   

    this.server这个变量是全局变量是private   MessageServer   server   =   new   MessageServer(); 
    定义的对象=server这个变量是局部变量 public   void   makeMessageServer(int   port,   MessageServer   server)throws   IOException 定义的对象。 
      

  2.   

    this.server 是该类中定义的 private   MessageServer   server   =   new   MessageServer(); 等号后面的server 是形式参数 public   void   makeMessageServer(int   port,   MessageServer   server)throws   IOException  这里传过来的server 
      

  3.   

    this.server=server是用来显示  private   MessageServer   server   =   new   MessageServer(); 这条语句中的server的,这条语句中的server是一个全局变量(当然JAVA中没有全局变量这一说,只是起到的作用和全局变量是一样).其实也就是使server对象在public   void   makeMessageServer(int   port,   MessageServer   server)throws   IOException  方法中显示化,避免错误.
      

  4.   

    makeMessageServer 需要2个参数, 端口和服务,
    所以必须传入一个server进来而 makeMessageServer 是一个 public 方法,所以他无法肯定传入的server肯定就是类里面的那个server, 所以他也只好再
    this.server = server 了!这是设计问题。
      

  5.   

     this.server   =   server;//只是宣称这个"server"是 从private   MessageServer   server   =   new   MessageServer();  里复制来得,其实是连接两个server和指向一个server语句