将内部变量作为方法中的参数传递

时间:2011-05-27 17:52:39

标签: java oop methods

假设我有一个包含多个私有String变量的类:

public class Children
{
    private String child0, child1;
}

我想创建一个SetName方法,它将child0或child1设置为指定值

所以在实例化Children类之后我可以做这样的事情:

myChildren.SetName(child0, "Lucy");

如何在方法中传递私有类变量String?我如何编码SetName方法?我知道我可以创建一个数组,并传递元素编号,但这不是我需要的,而不是我想要实现的方式。

3 个答案:

答案 0 :(得分:4)

您可以将孩子存储在Map的一个实现中。 HashMap适用于大多数情况。

public class Children
{
    private Map<String, String> children = new HashMap<String, String>();

    public void SetName(string child, string name)
    {
        children.put(child, name);
    }
}

答案 1 :(得分:3)

为什么不为每个孩子创建单独的方法。

public void setChild0Name(String name)
{
    this.child0 = name;
}

答案 2 :(得分:0)

如果您想保留私有字段:

private string child0, child1;

我不确定你能做什么,但为每个字符串实现一种方法,如RMT所说。

另一方面,如果这不是问题,那么您可以创建一个私有Dictionary<string, string>并将child0,child1等存储为具有空值的键。

然后你的setter方法是:

myChildren.Set("child0","Lucy");

您只需检查字典中是否存在“child0”键,并将其值更新为“Lucy”。如果给定的密钥不存在,您可以抛出异常,添加新的密钥值对等