我正确设置这种静态方法吗?

时间:2011-11-01 05:59:51

标签: java class methods static-methods

说明:为Person编写一个静态方法createAdult,它返回此类的特殊实例。该实例代表一名普通成年人,名称为“成人”,年龄为21岁。

人是班级名称 name是一个String变量private Age是一个int变量private

这就是我创造的,这是它所要求的吗?它要求的不仅仅是我提供的吗?

public static void createAdult(String name, int age)
{
  name = "An Adult";
  age = 21;
}

4 个答案:

答案 0 :(得分:4)

我无法帮助你完成你的同事,所以让我试着解释一下。

要求是: -

  • 返回此类的特殊实例。 你的方法如何返回任何东西?如果声明为void,则表示您的方法没有返回任何内容。

  • 实例表示名称和年龄,因此您必须在静态方法中返回该类的实例。使用这些值创建新实例。

答案 1 :(得分:2)

没有。如问题的第一行所述,您必须创建该类的实例(使用new关键字),然后将这些值分配给它,然后将其返回。

很可能会有Person的构造函数,它会做你想要的,如:

Person newPerson = new Person ("paxdiablo", 46)'; // A rare admission :-)

静态方法未附加到实例,因此除非您创建对象,否则无法设置对象的字段。

This page涵盖了对象的实例化。 This page涵盖工厂方法(这是你在这里尝试做的事情 - “工厂”是一种能够根据需要构建对象并将它们还给你的设备,与你自己创建它们不同)。 / p>

例如,如果你查看上面的第二个链接,你会发现:

public static ComplexNumber valueOf (float aReal, float aImaginary) {
    return new ComplexNumber (aReal, aImaginary);
}

这是一个经典的工厂方法,一个可以调用的静态函数:

ComplexNumber c = ComplexNumber.valueOf (0, 1); // sqrt(-1)

这将为您的规范创建一个对象。

答案 2 :(得分:0)

如果您只是代码是您提供给我们的代码那么不,它将无法正常工作。您无法在代码中指定姓名和年龄。

答案 3 :(得分:0)

  • createAdult方法应该只返回Class的实例。
  • 如果无效,您将不会返回任何内容
  • 名称和年龄应该在班级而不是方法