如何创建一个方法来获取字符串参数来指定 sth 的名称



导师问我们

如何创建一个名为 addAlien 的新方法,该方法采用 String 参数来指定外星人的名称,并在方法内创建一个新的 Alien 对象,然后将其添加到ArrayList中。

我刚刚写道:

public void addAlien(String name)    
{
    Alien name = new Alien() 
}

我希望您正在寻找:

ArrayList<Alien> list = new ArrayList<>();
public void addAlien(String name) {
    list.add(new Alien(name));
}

在 addAlien 方法中,输入参数绑定到标识符"name",如您所声明的:

public void addAlien(String name)  ...

因此,当用户将字符串传递给方法时,字符串可以通过标识符"name"引用并进一步用于其他目的。但紧接着,你使用相同的标识符(即"名称")创建了一个 Alien 类型的变量。在研究进一步发展之前,应该消除这种混乱。

所以而不是

Alien name = new Alien() 

你应该做

Alien newlyCreatedAlien = new Alien()

请注意,编译您编写的代码在语法上是合法的,这是一个称为"阴影"的概念。如果您在理解或查找相关材料时遇到困难,请告诉我。

最后,方法用户给出的字符串(现在存储并由标识符"name"引用)应该正确使用!在这种情况下,我们正在创建(构建)一个新的外星人对象。通常,我们调用类的所谓"构造函数"。

new Alien(someParameterPassedToTheConstructor)

因此,存储在"名称"中的信息应通过构造函数的参数传递以创建特定的外星人。

new Alien(name)

将是满足需求的微不足道的解决方案。

请注意,在 DhiwaTdG 提供的解决方案中,新创建的 Alien 不使用任何标识符进行存储(它是创建的,然后直接添加到列表中)。这是完全可以的,因为此方法不需要对这个特定的外星人执行进一步的操作,然后将其添加到列表中。这是我们追求的列表,而不是外星人(至少在这种方法中)。

希望这能帮助您消除一些困惑。

这应该很有帮助。

List<Alien> list = new ArrayList<>();
public void addAlien(String name) {
    list.add(new Alien(name));
}
class Alien{
    String name;
    public Alien(String name){
        this.name = name
    }
}

相关内容

  • 没有找到相关文章

最新更新