2014-09-10 84 views
-2

有人可以向我解釋參考(非原始)數據類型的工作原理嗎?主要是如何向他們輸入數據以及如何檢查他們持有的數據? 請問您是否可以使用此代碼作爲示例。Java在非原始數據類型中輸入值

public class Example{ 
    public static void main(String [] args){ 
     Circle c= new Circle(); 
     System.out.println(): 
    } 
} 

public class Circle{ 
    Circle round; 
    public Circle(){ 
    } 
    public Circle numPlacment(){ 
     round=new Circle(2);  //I would like circle to contain the value of '2' 
     return round; 
    } 
    public String toString(){ 
     StringBuilder b= new StringBuilder(); 
     b.append(round); 
     return String.format("%4s",b); 
    } 
} 
+2

'「下面的示例代碼是什麼讓我困惑....」 - 請具體。關於代碼究竟是什麼使你感到困惑? – 2014-09-10 22:23:59

+0

''我認爲它與構造函數有關,但我不確定。「' - 這個告訴我們很少幫助我們理解你的問題。你的Circle構造函數什麼都不做,你的構造函數調用不會編譯。 – 2014-09-10 22:24:23

+0

...爲什麼你的Circle類包含一個Circle實例變量,圓?這個代碼和問題很混亂。 – 2014-09-10 22:25:26

回答

3

你的代碼有點荒謬。它可能會更容易只是看看它應該如何完成:

public class Example{ 
    public static void main(String [] args) { 
     // create a new circle with radius 2 
     Circle c= new Circle(2); 
     // Print that circle 
     System.out.println(c);  
    } 
} 

class Circle { 
    // The instance variable that stores the radius for this circle 
    double radius; 

    // Create a new Circle given a radius 
    public Circle(double radius) { 
     // assign the given radius parameter to the instance variable 
     this.radius = radius; 
    } 
    public String toString() { 
     StringBuilder b= new StringBuilder(); 
     b.append(radius); 
     return String.format("%4s",b); 
    } 
} 
+0

我明白你在這裏做了什麼,但是如果半徑是隨機產生的。我們怎樣才能從Circle類中將radius放到'c'中,而不是主要的 – user2737810 2014-09-10 22:36:01

+0

@ user2737810:給Circle一個'setRadius(int r)'方法,讓其他有Circle實例的類在半徑需要時調用這個方法改變。這在Java書的任何介紹的前兩章中都有解釋。考慮閱讀一篇文章,或者按照我開始時的做法,閱讀3至4. 1+。 – 2014-09-10 22:37:33