-4

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

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

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

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

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

java TestRect 1 2 3 4
矩形 = (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

4 回答 4

1

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

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

因此,作为让您走上正轨的提示:

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

Rectangle rect = new Rectangle(x,y,width,height);
于 2012-08-22T03:59:55.213 回答
0

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

  1. 您没有遵循规范中的前两个说明。

在类中为 x、y、width 和 height 声明成员变量 创建一个构造函数,将这 4 个变量作为参数并将类成员分配给它们

  1. 然后可以将类中的所有方法声明为非静态方法,并且不需要任何参数,因为您将这些变量存储为类成员。
于 2012-08-22T03:56:20.847 回答
0

你的TestRect1课有点欠缺。

  • 它应该有四个成员字段,分别代表 x、y、宽度和高度。
  • toString()方法应该是一个实例方法(而不是static像您拥有的方法)并且它不应该带任何参数。它应该从字段值构造字符串。
  • 和方法同样应该改为实例方法并且不带参数area()perimeter()

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

TestRect1 rect;
// initialize rect
System.out.println("rectangle = " + rect.toString());
于 2012-08-22T03:56:32.447 回答
0

由于您是初学者,因此我建议您尝试自己编写代码,如果您有任何疑问,请在代码中发布您的问题,以便于理解。但顺便说一句,我只是发布了我的解决方案的几个部分。
首先定义一个Rectangle在这个类里面调用的类,写一个构造函数和三个方法
1.2.3 area(width,height)
.方法,这样写 perimeter(width,height)
@Override toString()

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

采取命令行参数,因为TestRect 1 2 3 4
我也建议寻找以前的答案。希望这对您有所帮助。

于 2012-08-22T04:59:54.653 回答