gpt4 book ai didi

java - 在 Java 中从另一个类创建数组对象

转载 作者:行者123 更新时间:2023-12-02 04:13:13 26 4
gpt4 key购买 nike

首先,让我先说一下我对 Java 还很陌生,所以如果我搞砸了任何术语或任何东西,我深表歉意。

现在,第二个问题。

我在一个类中创建了一个字符串数组(“保修”):

public class Warranty {

private int monthnum;
private String[] partscovered = new String[5]; {

partscovered[0]= "Engine";
partscovered[1]= "Mirrors";
partscovered[2]= "Electrics";
partscovered[3]= "Body";
partscovered[4]= "Wheels";

}


public Warranty(int monthnum,String[] partscovered) {

this.monthnum = monthnum;
this.partscovered= partscovered;

}



public void displaywarranty() {

System.out.println("*******");
System.out.println(8);
System.out.println(partscovered);
System.out.println("\n");

}

我正在尝试在另一个类中实例化它('VehicleTest'):

public class VehicleTest {

public static void main(String[] args) {

......

Warranty warranty = new Warranty(0,partscovered); //returns an error: 'partscovered cannot be resolved to a variable'
warranty.displaywarranty();

}


}

我想将数组打印到 IDE 的控制台,但我有点困惑为什么会收到上述错误消息(即 partscovered 无法解析为变量 )。在我看来,我似乎做对了,但显然我没有做对,所以老实说我有点困惑。任何帮助将不胜感激! :)

最佳答案

这段代码存在三个问题。

首先,打印数组的方式是

System.out.println(Arrays.toString(partscovered));

其次,您无法将 partscovered 传递给 Warrenty 构造函数,因为 partscoveredWarranty 的字段。您必须创建一个单独的变量。类似的东西

String[] pc = {"Steering Wheel", "Exhaust Pipe"};
Warranty warranty = new Warranty(0, pc);
warranty.displaywarranty();

或者,您可以完全避免使用变量

Warranty warranty = new Warranty(0, new String[]{"Steering Wheel", "Exhaust Pipe"});

最后,我个人不喜欢您使用实例初始值设定项来用 "Engine""Mirrors" 等填充数组 partscovered即使您将数组传递给构造函数,也会发生这种情况。提供默认数组的另一种方法是编写第二个构造函数:

private String[] partscovered; // This is deliberately not assigned

public Warranty(int monthnum) {
this.monthnum = monthnum;
this.partscovered = new String[]{"Engine", "Mirrors", "Electrics", "Body", "Wheels"};
}

public Warranty(int monthnum,String[] partscovered) {
this.monthnum = monthnum;
this.partscovered = partscovered;
}

关于java - 在 Java 中从另一个类创建数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33585590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com