那我怎么知道this()是调用那个的构造方法?

那我怎么知道this()是调用那个的构造方法?

那我怎么知道this()是调用那个的构造方法?如果有3个以上的构造方法

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

看这个this()括号里面的参数

举个例子

public class A {
	int a,b;
	public A() {
		System.out.println("我是无参构造");
	}
	public A(int a) {
		System.out.println("我是单参构造");
	}
	
	public A(int a,int b) {
		this(a);
		System.out.println("我是双参构造");
	}
	public static void main(String[] args) {
		A a=new A(1,2);
	}
}

运行结果上图

http://img1.sycdn.imooc.com//climg/5cb617a50001b0cf08640968.jpg

如果我在双残构造里面调用的是无参构造的话, 那么this();

http://img1.sycdn.imooc.com//climg/5cb618400001da9e08740942.jpg

需要注意的是:

this调用构造方法必须写在方法体内的第一行

相同的构造方法是不会存在的 比如只有一个无参构造

  • 乜嘢吖 提问者 #1
    在双参的方法里面不是引用了单参的方法吗?为什么没有被调用
    2019-04-17 08:31:16
  • 乜嘢吖 提问者 #2
    讲错了,为什么无参会没有被调用?
    2019-04-17 08:35:34
  • 明天不吃鱼 回复 提问者 乜嘢吖 #3
    你需要用的时候就调用,不需要用的时候就不必调用,此外还要看你在主方法里采用什么哪种构造来实例化 而且:双参构造引用了单参,你看输出结果,已经被调用了啊。
    2019-04-17 08:49:03
吃吃吃鱼的猫 2019-04-17 09:59:26

同学你好,this调用哪个构造方法主要取决于括号中的参数,如下图同学代码为例,this()表示调用无参构造方法,this(3)表示调用单参构造方法,this(1,2)表示调用双参构造方法。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师