Java 如何使用数组的setter和getter

Java 如何使用数组的setter和getter,java,Java,好的,在我的类图上显示 void setVegetable( String veg[] ) String veg[] getVegetables() 只是想知道我该如何为这个语句编写代码 public void setVegetables( String veg[] ) { } 还要如何编写实例变量? 我还把它写成英文吗 private string vegetables = ""; 你需要像这样的东西 private String[] vegetables; 和setter方法

好的,在我的类图上显示

void setVegetable( String veg[] )
String veg[] getVegetables()
只是想知道我该如何为这个语句编写代码

public void setVegetables( String veg[] )  
{  
}
还要如何编写实例变量?
我还把它写成英文吗

private string vegetables = "";

你需要像这样的东西

private String[] vegetables;
和setter方法

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

或者遇到编译错误-字符串数组与字符串数组不同,您需要

private String[] vegetables;
和setter方法

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

或出现编译错误-字符串数组与字符串数组不同,我将更改变量:

private String vegetables;
对数组执行以下操作:

private String vegetables[];

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

我会更改变量:

private String vegetables;
对数组执行以下操作:

private String vegetables[];

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

应该是这样的:


public void setvegets(String[]veg){}

它应该是这样的:


public void setvegets(String[]veg){}

在初始化局部变量时,可以如下方式为其赋值:

private String[] vegetables = new String[]{"Carrot", "Parsnip"};
private String[] vegetables;
public void setVegetables( String veg[] ) {  
    vegetables = veg;
}

初始化局部变量时,可以按如下方式为其赋值:

private String[] vegetables = new String[]{"Carrot", "Parsnip"};
private String[] vegetables;
public void setVegetables( String veg[] ) {  
    vegetables = veg;
}

简单的答案是使用如下成员定义:

private String[] vegetables = new String[]{"Carrot", "Parsnip"};
private String[] vegetables;
public void setVegetables( String veg[] ) {  
    vegetables = veg;
}
像这样的二传手:

private String[] vegetables = new String[]{"Carrot", "Parsnip"};
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);
}

简单的答案是使用如下成员定义:

private String[] vegetables = new String[]{"Carrot", "Parsnip"};
private String[] vegetables;
public void setVegetables( String veg[] ) {  
    vegetables = veg;
}
像这样的二传手:

private String[] vegetables = new String[]{"Carrot", "Parsnip"};
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);
}

根据类图,您正在查看的实例变量是一个字符串数组。因此,实例成员也必须是字符串[]。 宣言应该是这样的

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

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

根据类图,您正在查看的实例变量是一个字符串数组。因此,实例成员也必须是字符串[]。 宣言应该是这样的

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

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

this.vegets=vegets.clone()更清晰。虽然您确实希望使用
列表
以及可能比
字符串
更具体的内容。但请注意,这会创建指向相同对象的数组副本(这在这里并不重要,因为Stings是不可变的)。调用方可以修改第一个数组中的对象更清晰。虽然您确实希望使用
列表
以及可能比
字符串
更具体的内容。但请注意,这会创建指向相同对象的数组副本(这在这里并不重要,因为Stings是不可变的)。这允许调用方修改第一个数组中的对象。添加它将不起任何作用?这是一个原始版本的塞特雷斯,它不会做任何事情。我只是在解决你在
setplayses
paramAddit上的语法错误,它什么都做不了?这是一个原始版本的塞特雷斯,它不会做任何事情。我只是在
setplaets
param上解决您的语法错误