我记得我可以在第二个构造函数中使用第一个构造函数,但是在粗线上有错误,你能帮我纠正吗?
public FaceExtAdditionCanvas() {
profileImage.setSize(IMAGE_WIDTH, IMAGE_HEIGHT);
add(profileImage, getWidth() / 2.0 - IMAGE_WIDTH / 2.0, IMAGE_MARGIN);
}
public FaceExtAdditionCanvas(GImage image){
profileImage=image;
**this.FaceExtAdditionCanvas();**
}
答案 0 :(得分:4)
要从另一个构建函数中调用一个构造函数,您需要使用this()
,并且需要先将它放在第一位。在您的情况下,默认构造函数需要调用带参数的构造函数,而不是其他方式。
答案 1 :(得分:0)
我们就是这样的例子:
public class Test
{
public Test() {
System.out.println("NO ARGS");
}
public Test(String s) {
this();
System.out.println("1 ARG");
}
public static void main(String args[])
{
Test t = new Test("s");
}
}
会打印
>>> NO ARGS
>>> 1 ARG
调用构造函数的正确方法是:
this();
答案 2 :(得分:0)
构造函数的第一行始终是对另一个构造函数的调用。您可以选择使用“this(...)”从同一个类调用构造函数,或者使用“super(...)”从父类调用构造函数。如果您不包含任何一个,编译器将为您包含以下行:super();