簡體   English   中英

創建構造函數時,可以在對象上調用方法嗎?

[英]Can you invoke a method on an object in creation of a constructor?

我創建了一個名為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)?

由於fillColor是Ball類的屬性,所以為什么不能直接設置它而不是調用方法

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

是的,您可以在構造函數中調用其他方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM