遇到java编程问题和toString()

时间:2012-08-22 03:44:26

标签: java

好的,所以我对所有这些Java编程都是全新的,而且我对它的了解很少,但对于我的工作,我是:

  

创建一个表示矩形的类。指定了一个矩形   通过其左上角的坐标(x,y)及其宽度和   高度。该类将用于创建许多矩形对象,以及   它必须具有

功能      
      
  • 将x,y,宽度和高度存储为分数的动态字段(变量);
  •   
  • 一个构造函数,其参数提供x,y,宽度和高度;
  •   
  • 返回矩形区域的函数;
  •   
  • 一个返回矩形周长的函数;和
  •   
  • 一个函数,它返回矩形的字符串表示形式,四个数字,在一对括号内,用逗号分隔   [此函数必须命名为toString()]
  •   
     

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

所以基本上如果它有效,它应该看起来像:

  

java TestRect 1 2 3 4
  rectangle =(1.0,2.0,3.0,4.0)
  面积= 12.0
  周长= 14.0

好的,对不起,因为之前,但是嗯,在看完你的答案之后,我做了一些改变,我仍然不完全确定这是不是你们的意思,但是:

我添加了

TestRect1 r = new TestRect1();

到TestRect(主类)进行了更改:

  System.out.println("rectangle = " + r.toString());
  System.out.println("area      = " + r.area(w, h));
  System.out.println("perimeter = " + r.perimeter(w, h));

到TestRect1(包含所有公式的另一个类),我摆脱了“静态”的东西 并补充说:

   public double x;
   public double y;
   public double w;
   public double h;

所以当我编译它们时,它们都编译,没有错误,但是当涉及到实际运行程序时,我输入

java TestRect 1 2 3 4

错误弹出说:

javac: invalid flag: 1
usage: javac <options> <source files>
use -help for a list of possible options

4 个答案:

答案 0 :(得分:1)

由于这是作业,我们不应该给你完整的答案。您显然已经了解了类是什么以及类的实例是什么。

您当前的问题是您实际上并未创建Rectangle类的实例。你所拥有的只是一个简单的类,只有静态方法。

这是一个让你走上正确轨道的暗示:

您需要一个可以创建类似实例的类:

Rectangle rect = new Rectangle(x,y,width,height);

答案 1 :(得分:0)

由于您正在尝试学习Java,我将不会发布完整的代码。相反,让我指出代码中的问题。

  1. 您没有按照规范中的前两条说明进行操作。
  2. 在类中声明x,y,width和height的成员变量 创建一个构造函数,它将这4个变量作为参数并将类成员分配给它们

    1. 然后可以将类中的所有方法声明为非静态,并且不需要接受任何参数,因为您将这些变量存储为类成员。

答案 2 :(得分:0)

你的TestRect1课程有点缺乏。

  • 它应该有四个成员字段,分别代表x,y,width和height。
  • toString()方法应该是一个实例方法(不是你所拥有的static方法),它应该不带参数。它应该从字段值构造字符串。
  • area()perimeter()方法同样应该更改为实例方法并且不带参数。

然后应修改main()方法以构造TestRect1对象,并使用其方法和字段来执行它需要做的事情。例如,一旦有TestRect1个对象,就可以调用其toString()方法:

TestRect1 rect;
// initialize rect
System.out.println("rectangle = " + rect.toString());

答案 3 :(得分:0)

由于您是初学者,所以我建议您尝试使用自己的编写,如果您有任何疑问,请将问题发布到您的代码中,以便易于理解。但顺便说一下,我只是发布了我的解决方案的几个部分 首先在这个类中定义一个名为Rectangle的类,写一个构造函数和三个方法
1. area(width,height)
2. perimeter(width,height)
3. @Override toString()方法并像这样写。

public String toString()  
{  
      return "("+x+","+y+","+width+","+height+")";  
} 

将命令行参数设为TestRect 1 2 3 4
我也建议寻找以前的答案。希望这能帮助你。