好的,所以在我的类图上它显示
void setVegetable( String veg[] )
String veg[] getVegetables()
只是想知道我将如何为此语句编写代码?
public void setVegetables( String veg[] )
{
}
另外我将如何编写实例变量?
我还是把它写成
private string vegetables = "";
好的,所以在我的类图上它显示
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 那样直接存储数组,调用者仍然可以修改数组的内容,因此如果您复制数组内容是一个好习惯想要更好的封装。尽管如果您操作大型数组,这将对性能产生影响。在这种情况下,setter 和 getter 看起来像这样
public void setVegetables( String veg[] ) {
vegetables = Arrays.copyOf(veg, veg.length);
}
public String[] getVegetables() {
return Arrays.copyOf(vegetables, vegetables.length);
}
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
.
它应该是这样的:
public void setVegetables( String[] veg ) { }
您可以在初始化时将值分配给局部变量,如下所示:
private String[] vegetables = new String[]{"Carrot", "Parsnip"};
我会改变变量:
private String vegetables;
到一个数组:
private String vegetables[];
然后通常使用 setter 和 getter 方法设置和获取实例数组。
根据您的类图,您正在查看的实例变量是一个字符串数组。所以实例成员也必须是 String[] 。声明应该像
private String[] vegetables;
public void setVegetables( String vegetables[] ) {
this.vegetables = vegetables;
}
public String[] getVegetables() {
return vegetables;
}