A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 猪猪fly侠 中级黑马   /  2015-4-30 11:06  /  1043 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 猪猪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("双参构造");
     }
}  
输出结果:
无参构造
双参构造。

6 个回复

倒序浏览
你在双惨构造函数里调用了无参构造函数呀。输出结果有什么问题呢?
回复 使用道具 举报
就是对this的用法有点晕
回复 使用道具 举报
cyr 发表于 2015-4-30 11:39
你在双惨构造函数里调用了无参构造函数呀。输出结果有什么问题呢?

this到底怎么用
回复 使用道具 举报
双参构造函数中有this(),你不写系统也会加一个上去的。就是调用无参构造函数,因为是在第一句,所以先执行无参,再执行双参。
回复 使用道具 举报

this是指本类中的。this();就是调用本类方法,可以看成是className();就是无参数的构造函数啊。
回复 使用道具 举报
cyr 中级黑马 2015-4-30 14:15:25
7#

this指的是本类对象,你可以理解为自己本身。如果this放在构造函数中,则代表构造函数。this只能放在构造函数的第一行,与super用法一样,只能出现this/super一次,不能同时出现。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马