Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将内部变量作为参数传递到方法中_Java_Oop_Methods - Fatal编程技术网

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

Java 将内部变量作为参数传递到方法中,java,oop,methods,Java,Oop,Methods,假设我有一个包含多个私有字符串变量的类: public class Children { private String child0, child1; } 我想创建一个SetName方法,将child0或child1设置为指定的值 在实例化Children类之后,我可以做如下操作: myChildren.SetName(child0, "Lucy"); 如何在方法中传递私有类变量字符串?如何对SetName方法进行编码?我知道我可以创建一个数组,并传递元素号,但这不是我所需要的,也不

假设我有一个包含多个私有字符串变量的类:

public class Children
{
    private String child0, child1;
}
我想创建一个SetName方法,将child0或child1设置为指定的值

在实例化Children类之后,我可以做如下操作:

myChildren.SetName(child0, "Lucy");

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

您可以将子元素存储在
Map
的一个实现中<代码>哈希映射适用于大多数情况

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

    public void SetName(string child, string name)
    {
        children.put(child, name);
    }
}
公共类子类
{
private-Map-children=new-HashMap();
public void SetName(字符串子项、字符串名称)
{
children.put(child,name);
}
}

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

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

如果要保持私有字段的原样,请执行以下操作:

private string child0, child1;
我不确定您是否可以做任何其他事情,但要像RMT所说的那样为每个字符串实现一个方法

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

那么您的setter方法将是:

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

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

如果您不想存储任何给定字符串的值,您还可以在
子项上添加一些输入验证。谢谢!这可能是最有效的方法。
Dictionary
是一个.NET BCL类。标签上说OP使用Java。这是一个想法,我考虑过这样做。。。但不幸的是,它不能满足我的需要。谢谢你的贡献。