-2

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

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

• 在一个单独的类中编写一个接受四个数字作为命令行参数的主方法,实例化一个矩形对象,并打印矩形、面积和周长的字符串表示形式。

输出应如下所示:

$ 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 部分是关于什么的。对此的任何帮助将不胜感激。

4

1 回答 1

0

好吧,您可能也是面向对象编程的新手吗?因为你所做的更像是 ac 程序(实际上它甚至几乎是......)

你不应该让你的 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());
   }

}

也许您还应该阅读一些有关面向对象概念的内容...在这里

于 2013-08-14T13:32:32.430 回答