2013-03-11 78 views
1

我试图从对象内输出一些数据到控制台。似乎工作,但低于数据我得到一个奇怪的消息。从对象内输出数据(JAVA)

下面是代码:

import java.text.DecimalFormat; 

/** 
* The Circle class calculates area, diameter, and circumference 
*/ 

public class Circle { 

    DecimalFormat fmt = new DecimalFormat("#0.00"); 

    // Fields 
    private double radius;     // Holds the circle radius 
    private final double PI = 3.14159;  // The formula for PI 


    /** 
    *  Start Constructors 
    */ 


    public Circle(double rad) { 

     radius = rad; 
     System.out.println("The circle's radius is " + (fmt.format(radius))); 
     System.out.println("The circle's area is " + (fmt.format(PI * radius * radius))); 
     System.out.println("The circle's diameter is " + (fmt.format(radius * 2))); 
     System.out.println("The circle's circumference is " + (fmt.format(2 * PI * radius))); 
    } 


} 

控制台输出为:

The circle's radius is 2.00 
The circle's area is 12.57 
The circle's diameter is 4.00 
The circle's circumference is 12.57 
[email protected] 

什么是圆的消息?

回答

1

给你的圈子类一个体面的方法覆盖toString()。您会看到Object的此方法的默认版本的返回。

@Override 
public String toString() { 
    /* return a String that shows the "state" of this object */ 
} 
+0

我不知道这意味着什么或在哪里添加这段代码?我在这一章中并没有那么深入。尚未覆盖@override – 2013-03-11 03:00:41

+0

@blnr:它将进入Circle类的内部。像这样System.out.println调用,'System.out.println(myObject);'实际上调用了这个:'System.out.println(myObject.toString());'。为了使这个更有意义,对象的类必须覆盖Object类所拥有的默认方法(这就是你所看到的)。 – 2013-03-11 03:03:51

1

您必须在其他地方只有一个Circle对象作为输出的System.out。然后气垫船充满鳗鱼的答案适用。

Btw:Math.PI已经给你Pi!