public class TcpConnection extends Connection {
  private final static String module = TcpConnection.class.getName();
  private final static QueueFactory queueFactory = QueueFactory.getInstance();  private TCPClient client = null;
  private SocketChannel sc = null;
  private boolean isConnect = false;  /**
   * 客户端连接初始化
   * @param client
   */
  public TcpConnection(TCPClient client){
    this();//   这个地方的this();是调用什么呀?
    this.client = client;
    this.CSType = ConnectionFactory.CLIENT;
  }  /**
   * 服务器端连接初始化
   */
  public TcpConnection(){
     queue = queueFactory.getQueue(QueueFactory.TCP_QUEUE);
     this.CSType = ConnectionFactory.TCPSERVER;
     isConnect = true;
  }
}在TcpConnection(TCPClient client)中的this()是怎么运行的?是再次调用本身的构造函数,还是调用下面的无惨构造函数?各位帮忙说下!

解决方案 »

  1.   

    那就是如果以new TcpConnection(TCPClient client)这种方式生成后,先初始化
    TcpConnection(TCPClient client)这个构造函数,而次函数先执行this(); 就是会先初始化下面的TcpConnection()这个无参构造函数,再返回继续本身TcpConnection(TCPClient client)未完成的初始任务.是不是可以这样理解?
      

  2.   

    是调用下面的无惨构造函数  等效于
    public TcpConnection(TCPClient client){
        queue = queueFactory.getQueue(QueueFactory.TCP_QUEUE);
         this.CSType = ConnectionFactory.TCPSERVER;
         isConnect = true;
        this.client = client;
        this.CSType = ConnectionFactory.CLIENT;
      }
      

  3.   

    有参数的构造函数,在第一行调用自己的无参数的构造函数;this就是指本类的实例;this()就是指本类的构造函数
      

  4.   

    你如果有两个构造函数,可以用this()相互调用
    而且只能在构造函数中,用this()调用另外的构造函数
      

  5.   

    如果在TcpConnection()的构造函数里加this(TCPClient client)就又调用TcpConnection(TCPClient client)这个构造函数了.
    是这样吗?看来this()这个挺好用嘛