你可以在创建构造函数时调用对象上的方法吗?

时间:2014-11-11 16:02:43

标签: java methods constructor

我创建了一个名为Ball of GOval的子类。我想创造一个黑球。为了实现这一点,我尝试了这个:

在一个类中,我创建了一个新的Ball对象。

Ball ball = new Ball(0,0,200);

这将在Ball(扩展GOval)中调用此构造函数

public Ball(double xPos, double yPos, double diameter){
    super(xPos, yPos, diameter, diameter);
}

我还要初始化颜色以及设置此构造函数中填充的颜色。问题是这些是您在对象上调用的方法。例如,这有效:

Ball ball = new Ball(0,0,200);
ball.setFillColor(Color.BLACK)
add(playball);

但我真正想要的是在球类的构造中执行这两个最后两条指令:

public Ball(double xPos, double yPos, double diameter){
        super(xPos, yPos, diameter, diameter);
        setFillColor(Color.BLACK);
    }

感谢您的回复:我使用了它:

setFilled(true);
setColor(Color.BLACK);

这可能有效,因为我用super调用GOval的构造函数,然后在这个对象上调用这些方法(setFilled和setColor)?

2 个答案:

答案 0 :(得分:1)

由于fillColor是Ball类的属性,为什么不能直接设置它而不是调用方法

public Ball(double xPos, double yPos, double diameter){
    super(xPos, yPos, diameter, diameter);
    this.fillColor = Color.BLACK;
}

答案 1 :(得分:1)

是的,你可以在构造函数中调用其他方法。