关于构造函数的重载:
    一个类的构造函数之间可以相互调用。当一个构造函数调用另一个构造函数时,可以使用关键字this,同时这个调用语句应该是整个构造函数的第一个可执行语句。D200_Card()
{
}D200_Card(long cn)
{
   this();
   cardNumber=cn;
}D200_Card(long cn,int pw)
{
   this(cn);
   password=pw;
}D200_Card(long cn,int pw,double b)
{
   this(cn,pw);         // --------------> 问题:用this就能使类中的域“对号入坐”吗?JAVA是如何做的?
   balance=b;         // --------------->           这句话应当如何理解?
}小弟新学JAVA两天的时间,请各位大侠不要见笑。请不吝赐教:)谢谢!!!答:

解决方案 »

  1.   

    关于构造函数的重载:
        一个类的构造函数之间可以相互调用。当一个构造函数调用另一个构造函数时,可以使用关键字this,同时这个调用语句应该是整个构造函数的第一个可执行语句。D200_Card()
    {
    }D200_Card(long cn)
    {
       this();
       cardNumber=cn;
    }D200_Card(long cn,int pw)
    {
       this(cn);
       password=pw;
    }D200_Card(long cn,int pw,double b)
    {
       this(cn,pw);         // --------------> 问题:用this就能使类中的域“对号入坐”吗?JAVA是如何做的?
       balance=b;         // --------------->           这句话应当如何理解?
    }小弟新学JAVA两天的时间,请各位大侠不要见笑。请不吝赐教:)谢谢!!!答:
      

  2.   

    关于构造函数的重载:
        一个类的构造函数之间可以相互调用。当一个构造函数调用另一个构造函数时,可以使用关键字this,同时这个调用语句应该是整个构造函数的第一个可执行语句。
      

  3.   

    首先,在实例化对象时,根据参数表来查找对应的构造函数,就是你的第一个问题。
    第二个问题,balance=b;balance可能是你这个类里的一个成员变量,这句话负责初始化它。就和cardNumber=cn;的含义一样。
      

  4.   

    this也就是类自身
    例如
    D200_Card(long cn)
    {
       this();
       cardNumber=cn;
    }
    等价于
    D200_Card(long cn)
    {
       this();
       this.cardNumber=cn;
    }
    在类中调用该类的某方法时
    this.somemethod();
    构造函数只是省略了方法名而已
    然后由this(para1,para2)中的para1,para2来决定调用那个构造函数
      

  5.   

    TO: idpmud(泥潭) 
    您的第一个解释我不明白,除了这个用THIS()的构造函数以外还有别的吗?
      

  6.   

    这个类是个子类,父类有3个属性,而他继承了,比如我要传进来3个参数的话
    D200_Card(long cn,int pw,double b)
    {
       this(cn,pw);
       balance=b;
    }
    怎么知道他和父类的属性相对应赋值的?
      

  7.   

    注:
    (cn 是 connectNumber , pw 是password ,b 是balance属性)
    JAVA会不会把cn-->password ,pw-->connectNumber ???
    这样不就产生交叉赋值错误了吗?
    我不知道JAVA会怎么处理这个赋值?
      

  8.   

    This在这里只是一个回溯的机制,它仅仅是实现原始调用。怎么知道他和父类的属性相对应赋值的?这样不就产生交叉赋值错误了吗?什么意思,我不太理解。