繁体   English   中英

如何在数组中使用setter和getter

[英]How to use setters and getters for array

好吧,在我的班级图上

void setVegetable( String veg[] )
String veg[] getVegetables()

只是想知道我将如何对此语句进行编码?

public void setVegetables( String veg[] )  
{  
}

还有我怎么写实例变量?
我仍然写为

private string vegetables = "";

简单的答案是使用这样的成员定义:

private String[] vegetables;

和这样的二传手:

public void setVegetables( String veg[] ) {  
    vegetables = veg;
}

但是,请记住,数组是可修改的,这意味着如果像上述设置程序中那样直接存储数组,则调用方仍将能够修改数组的内容,因此如果您复制数组内容,则是一个好习惯想要更好的封装。 尽管如果您操作大型阵列,这会对性能产生影响。 在这种情况下,setter和getter将如下所示

public void setVegetables( String veg[] ) {  
    vegetables = Arrays.copyOf(veg, veg.length);
}

public String[] getVegetables() {  
    return Arrays.copyOf(vegetables, vegetables.length);
}

您将需要类似

private String[] vegetables;

和setter方法

public void setVegetables( String[] veg )  { this.vegetables = veg; )

或遭受编译错误-的阵列String的是一样的一个String

我将更改变量:

private String vegetables;

到数组:

private String vegetables[];

然后通常使用setter和getter方法设置并获取实例数组。

应该是这样的:

public void setVegetables( String[] veg ) { }

您可以在初始化时为本地变量赋值,如下所示:

private String[] vegetables = new String[]{"Carrot", "Parsnip"};

根据类图,您正在查看的实例变量是一个String数组。 因此,实例成员也必须是String []。 声明应该像

private String[] vegetables;
public void setVegetables( String vegetables[] ) {  
    this.vegetables = vegetables;
}

public String[] getVegetables() {  
    return vegetables;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM