如何创建一个方法来取String参数来指定sth的名称

时间:2016-07-15 10:39:22

标签: java arrays netbeans methods parameters

导师问我们

如何创建一个名为addAlien的新方法,该方法使用String参数指定外星人的名字,并在方法中创建一个新的Alien对象,然后将其添加到{{1 }}

我刚刚写道:

ArrayList

3 个答案:

答案 0 :(得分:2)

我希望你在寻找:

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

答案 1 :(得分:1)

在你的addAlien方法中,输入参数绑定到标识符&#39; name&#39;,如你所声明:

public void addAlien(String name)  ...

因此,当用户将字符串传递给方法时,字符串可以通过标识符&#39; name&#39;来引用。并进一步用于其他目的。 但在此之后,您使用完全相同的标识符(即&#39; name&#39;)创建了Alien类型的变量。在进一步开发之前,应该清除这种混乱。

所以而不是

Alien name = new Alien() 

你应该做

Alien newlyCreatedAlien = new Alien()

请注意,编译您编写的代码在语法上是合法的,它是一个名为&#34; shadowing&#34;的概念。如果您在理解或找到相关材料方面遇到困难,请告诉我。

最后,方法用户给出的字符串(现在存储并由标识符&#39; name&#39;表示)应该正确使用! 在这种情况下,我们正在创建(构造)一个新的Alien对象。通常,我们调用所谓的构造函数&#39;一个班级。

new Alien(someParameterPassedToTheConstructor)

存储在&#39; name&#39;中的信息因此应该通过构造函数的参数传递以创建特定的Alien。

new Alien(name)

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

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

希望这会帮助你清理一些混乱。

答案 2 :(得分:0)

这应该会有所帮助。

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
    }
}