0

好的,所以在我的类图上它显示

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

只是想知道我将如何为此语句编写代码?

public void setVegetables( String veg[] )  
{  
}

另外我将如何编写实例变量?
我还是把它写成

private string vegetables = "";
4

6 回答 6

3

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

private String[] vegetables;

像这样的二传手:

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

但是,您应该记住,数组是可修改的,这意味着如果您像上面描述的 setter 那样直接存储数组,调用者仍然可以修改数组的内容,因此如果您复制数组内容是一个好习惯想要更好的封装。尽管如果您操作大型数组,这将对性能产生影响。在这种情况下,setter 和 getter 看起来像这样

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

public String[] getVegetables() {  
    return Arrays.copyOf(vegetables, vegetables.length);
}
于 2012-12-03T09:16:22.407 回答
0

You would need something like

private String[] vegetables;

and the setter method

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

or suffer a compile error - An array of String's is not the same as a String.

于 2012-12-03T09:08:28.177 回答
0

它应该是这样的:

public void setVegetables( String[] veg ) { }

于 2012-12-03T09:10:18.207 回答
0

您可以在初始化时将值分配给局部变量,如下所示:

private String[] vegetables = new String[]{"Carrot", "Parsnip"};
于 2012-12-03T09:12:11.127 回答
0

我会改变变量:

private String vegetables;

到一个数组:

private String vegetables[];

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

于 2012-12-03T09:09:53.900 回答
0

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

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

public String[] getVegetables() {  
    return vegetables;
}
于 2012-12-03T09:29:48.460 回答