2016-12-01 68 views
-1

我的教授給我們這些指令:如何使用類的對象作爲實例變量?

該類應該有兩個實例變量:一個整數radiusPoint2D對象center說是圓的中心。提供以下功能:用於初始化實例變量的兩個參數構造函數,順序半徑和中心。

我需要幫助製作center實例變量。這是我有:

public class Circle 
{ 
//instance variables 
    private int radius; 
    Point2D center = new Point2D(2,3); 

//constructor 
    public Circle(int radius, int center) 
    { 
    this.radius = radius; 
    this.center = center; 
    } 
} 

我不知道如何使用它作爲一個實例變量,我不知道如何在類的構造方法初始化。

+2

你已經擁有了。 –

+0

如果我理解你的問題是正確的,那麼你在做什麼是正確的Point2D center = new Point2D(2,3);是一個實例變量,您將構造函數的參數賦值給'center'實例變量。我認爲你對java變量類型的術語感到困惑。有四種變量類型(ref:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html) – user2880879

+0

它沒有編譯。給我一個錯誤,說:「不兼容的類型:Int不能轉換成Point2D –

回答

1

我認爲你可以在你的構造器的第二個參數從int更改爲Point2D對象是這樣的:

public class Circle 
{ 
    //instance variables 
    private int radius; 

    // Remove the initialization from here and move it inside constructor 
    Point2D center; 

    //constructor 
    // Here you change the second parameter from "int center" to "Point2D center" 
    public Circle(int radius, Point2D center) 
    { 
     this.radius = radius; 
     this.center = center; 
    } 
} 

這樣,要初始化構造函數中的實例變量,並使其更容易測試和東西因爲你的班級不依賴於Point2D類。

+0

是的!!謝謝!! –

+0

@KoulaeMoua請仔細閱讀本文http://stackoverflow.com/help/someone-answers並遵循它給出的建議 –

0

中心被正確定義爲一個實例變量。然而,由於您在構造函數中要求中心,因此在聲明它時不需要將其分配給任何內容。你的代碼中唯一的錯誤是錯誤地說中心應該是int類型而不是Point2D的構造函數。

我不會給你在代碼中的完整答案,因爲它顯然是一個學校作業,我已經說過的應該可以幫助你很多。祝你好運

+1

爲了遲到 – Hampus

相關問題