2014-09-10 83 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