java程序和toString()的麻烦

时间:2013-08-14 13:00:39

标签: java tostring

我正在尝试创建一个程序来创建一个表示矩形的类。矩形由其coordinates (x, y)指定 左上角及其宽度和高度。该类将用于创建许多矩形对象, 它必须具有以下功能:

  • 用于存储x,y,宽度和高度的动态字段(变量)作为小数;
  • 具有提供x,y,宽度和高度的参数的构造函数;
  • 返回矩形区域的函数;
  • 返回矩形周长的函数;和
  • 一个函数,它返回一对括号内的矩形的字符串表示,四个数字,以逗号分隔。此函数必须命名为toString()

•在单独的类中写入一个main方法,该方法接受四个数字作为命令行参数, 实例化一个矩形对象,并打印矩形的字符串表示,区域和 周边。

输出应如下所示:

$ java TestRect 1 2 3 4
rectangle = (1.0, 2.0, 3.0, 4.0)
area = 12.0
perimeter = 14.0
$

这是我到目前为止所拥有的

public class TestRect {

public static void main(String[] args) {


  double base = 0;
  double height = 0;
  double area = 0;
  double perimeter = 0;


  base = Double.parseDouble(args[0]);

  height = Double.parseDouble(args[1]);

  area = (base * height);

  perimeter = 2 * (base + height);



  System.out.println("The Area of Rectangle is : "
              + area);

  System.out.println("The Perimeter of Rectangle is : "
              + perimeter);

   }

}

我无法弄清楚如何做toString部分我也无法弄清楚x,y部分是什么。对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

那么,您是否也可能是面向对象编程的新手?因为你所做的更像是一个c程序(实际上它甚至几乎都是......)

你不应该让你的main()方法为你做逻辑,这应该包含在类'方法中。

尝试构建它,如下所示:

public class TestRect {

  private double base;
  private double height;
  private double area;
  private double perimeter;

  public TestRect (double base, double height) {
     this.base = base;
     this.height = height;
     getPerimeter;
     getArea;
  }

  public double getPerimeter () {
     perimeter = 2 * (base + height);
     return perimeter;
  }

  public double getArea () {
     area = (base * height);
     return area;
  }

  @Override
  public String toString() {
     // TODO Auto-generated method stub
     // here you can create a string just as you want it to look like
     return yourCreatedString;
  }

  public static void main(String[] args) {

      TestRect test = new TestRect(3.0, 4.0);
      System.out.println(test.toString());
   }

}

也许您还应该阅读有关面向对象概念的内容...... here