You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java调用this(...)重载构造器报call to this需为构造器首语句错误咨询

问题原因分析

报错的核心问题是你错误地给构造方法添加了返回值类型void,导致Java编译器没有将这两个Point方法识别为类的构造器,而是判定为普通的实例成员方法:

  • Java语法明确规定:类的构造方法没有返回值类型声明,方法名必须和类名完全一致。你给方法前添加了void之后,两个Point方法就只是普通成员方法,不再具备构造器的属性。
  • 只有在构造器内部,才能使用this(参数列表)的语法调用同类的其他构造器,且该语句必须放在构造器的第一行。你现在是在普通成员方法中写this(z,z),本身就不符合语法规则,因此编译器会抛出call to this must be first statement in constructor的错误。
修复方案

把两个方法前的void关键字删除即可,修复后代码如下:

class Point{
   int x ;
   int y ;

   Point (int x, int y){
      this.x = x ;
      this.y = y ; 
   }
   
   Point(int z){
      this(z,z);
   }
}

内容的提问来源于stack exchange,提问作者Julien C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 00:09:03