Java 我是否正确设置了此静态方法?

Java 我是否正确设置了此静态方法?,java,class,methods,static-methods,Java,Class,Methods,Static Methods,说明:为Person编写一个静态方法create成人,返回此类的特殊实例。该实例表示一个普通成人,名称为“成人”,年龄为21岁 Person是类名 name是一个字符串变量private 年龄是一个整数变量 这就是我创造的,这就是它所要求的吗?它要求的比我提供的更多吗 public static void createAdult(String name, int age) { name = "An Adult"; age = 21; } 否。正如问题的第一行所述,您必须创建类的实例(使

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

Person是类名 name是一个字符串变量private 年龄是一个整数变量

这就是我创造的,这就是它所要求的吗?它要求的比我提供的更多吗

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

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

很可能会有一个
Person
的构造函数,它将执行您想要的操作,例如:

Person newPerson = new Person ("paxdiablo", 46)'; // A rare admission :-)
静态方法未附加到实例,因此除非创建对象的字段,否则无法设置对象的字段

介绍对象的实例化。介绍工厂方法(这就是您在这里尝试做的事情——“工厂”是一种能够根据需要构建对象并将其返回给您的设备,与您自己创建对象不同)

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

public static ComplexNumber valueOf (float aReal, float aImaginary) {
    return new ComplexNumber (aReal, aImaginary);
}
这是一种典型的工厂方法,是一种静态函数,您可以使用以下方法调用:

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

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

我无法帮助您完成您的工作,所以让我试着解释一下

这些要求是:-

  • 返回该类的特殊实例。 您的方法如何返回任何内容?如果声明为void,则意味着您的方法没有返回任何内容

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


如果您认为代码是您提供给我们的唯一代码,那么不,它将不起作用。您不能在代码中指定姓名和年龄。

  • 方法create成人应该只返回类的实例
  • 有了虚空,你将一无所获
  • 名称和年龄应该在类中,而不是在方法中

好的,因此我无法手动设置它,而是需要创建实例,并使name/age的构造函数值等于我试图建立的值。是的,@Burninfate,这是正确的。将对象实例化为spec,然后返回它。经典工厂。我有点困惑,我应该如何从我的测试程序调用该方法来检查它是否有效,它看起来不像通常的方法,或者我会将它插入另一个方法中。@Burninfate:您使用类限定符而不是实例限定符来调用它。如果类是
xyzy
,则静态方法称为
xyzy.staticMethod()。非静态代码称为
xyzy plugh=new xyzy();plugh.nonStaticMethod()