黑马程序员技术交流社区

标题: 输出结果为什么会是这样的 [打印本页]

作者: 猪猪fly侠    时间: 2015-4-30 11:06
标题: 输出结果为什么会是这样的
本帖最后由 猪猪fly侠 于 2015-4-30 14:47 编辑

public class auther {
public static void main(String[] args) {
  // TODO Auto-generated method stub  
          A a = new A(1,"abc");
}
}
  class A{
  int num;
  String st;
  A(){
   System.out.println("无参构造");
  }
     A(int num){
      this.num = num;
      System.out.println("单参够着");
     }
     A(int num,String st){
      this();
      this.num = num;
      this.st = st;
      System.out.println("双参构造");
     }
}  
输出结果:
无参构造
双参构造。

作者: cyr    时间: 2015-4-30 11:39
你在双惨构造函数里调用了无参构造函数呀。输出结果有什么问题呢?
作者: 猪猪fly侠    时间: 2015-4-30 13:34
就是对this的用法有点晕
作者: 猪猪fly侠    时间: 2015-4-30 13:38
cyr 发表于 2015-4-30 11:39
你在双惨构造函数里调用了无参构造函数呀。输出结果有什么问题呢?

this到底怎么用
作者: 1017161726    时间: 2015-4-30 14:08
双参构造函数中有this(),你不写系统也会加一个上去的。就是调用无参构造函数,因为是在第一句,所以先执行无参,再执行双参。
作者: 1017161726    时间: 2015-4-30 14:09
猪猪fly侠 发表于 2015-4-30 13:38
this到底怎么用

this是指本类中的。this();就是调用本类方法,可以看成是className();就是无参数的构造函数啊。
作者: cyr    时间: 2015-4-30 14:15
猪猪fly侠 发表于 2015-4-30 13:38
this到底怎么用

this指的是本类对象,你可以理解为自己本身。如果this放在构造函数中,则代表构造函数。this只能放在构造函数的第一行,与super用法一样,只能出现this/super一次,不能同时出现。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2