我正在尝试执行下面的代码示例,以了解为什么调用“this”必须是构造函数中的第一个语句?我读过很多关于它的内容,我明白为什么会这样!
所以我写下面这个简单的程序但是仍然向我显示相同的错误,即使我在我的程序中使用'this'作为第一个语句。
import java.io.*;
import java.lang.*;
class Demo
{
int x=23;
void Demo()
{
this(55);
}
void Demo(int x)
{
this.x=x;
System.out.println("Inside Parameterise Constructor 2"+"\n Value of x:"+x);
}
}
class ThisDemo
{
public static void main(String []args)
{
Demo obj;
}
}
答案 0 :(得分:3)
要专门回答您的问题,这个或超级需要成为第一个确保基类已正确设置的调用。 https://stackoverflow.com/a/1168356/154186
要解决上述错误,请从函数调用中删除void类型。 e.g:
Demo(int x) {
this.x = x;
}
Demo() {
this(50);
}
答案 1 :(得分:1)
从Demo构造函数中删除void
class Demo
{
int x=23;
Demo()
{
this(55);
}
Demo(int x)
{
this.x=x;
System.out.println("Inside Parameterise Constructor 2"+"\n Value of x:"+x);
}
}
答案 2 :(得分:0)
你应该删除void.Constructor必须没有明确的返回类型。 然后它会正常工作。