【问题标题】:Java: static method, inside of a class, that creates an object [duplicate]Java:在类内部创建对象的静态方法[重复]
【发布时间】:2015-04-28 05:59:20
【问题描述】:

我在完成一项 Java 作业时遇到了令人沮丧的事情。我已经完成了第一部分,即:

"创建一个名为Rectangle的类来表示一个矩形。该类包含:

• 两个名为 width 和 height 的双精度数据字段指定矩形的宽度和高度。

• 一个无参数构造函数,它创建一个宽度和高度都为 1 的默认矩形。

• 创建具有指定宽度和高度的矩形的构造函数。

• 每个属性的公共访问器方法

• 一个名为 getArea() 的方法,它返回矩形的面积。

• 一个名为 getPerimeter() 的方法,它返回周长。"

但是,我似乎无法完成下一个,其中指出:

“在 Rectangle 类中编写一个名为 makeGoldenRectangle 的静态方法,该方法将一个代表矩形较长边的 double 作为参数,并返回一个新构造的 Rectangle,它是一个黄金矩形 (http://en.wikipedia.org/wiki/Golden_ratio)。返回的矩形应该有height=长边,width=短边。”

我有代码的计算部分,我只是不知道如何让它返回一个“矩形”对象,这对下一部分至关重要。有没有人有我咨询的建议或资源(我是新手,所以如果可能的话可以向土豆解释事情的资源)。

【问题讨论】:

  • 您应该能够使用new Rectangle() 构建它并提供宽度和高度。

标签: java class object static-methods


【解决方案1】:

您可以只从静态方法中调用 2 参数构造函数并返回构造的对象实例。显然,您必须首先执行所需的计算才能使用正确的参数调用构造函数。

所以你会得到:

public static Rectangle getRectangleWithGoldenRatio(double height) {
    double width = calculateGoldenRatio(height);
    return new Rectangle(width, height);
}

public static double calculateGoldenRatioShortSide(double longSide) {
    // perform calculations
}

【讨论】:

  • 我有新的矩形(高度,结果){ height=height;宽度=结果; };它一直告诉我我需要一个;在那里,但是当我添加它时,所有内容都会加下划线..
  • 呃,这不对。我从未听说过由高度和结果组成的矩形。您应该非常清楚您的变量的含义。您可以使用result调用构造函数,但不能这样命名参数。
  • 哦,你需要指定double width, double height,你在构造函数的声明中缺少参数的类型; Java 是强类型的!
猜你喜欢
  • 2012-05-27
  • 1970-01-01
  • 2015-10-07
  • 2021-09-25
  • 2017-09-21
  • 2010-11-24
  • 1970-01-01
  • 2018-12-19
  • 1970-01-01
相关资源
最近更新 更多