我正在学习java,我花了一个星期的时间试着去做我要解释的事情..
我有一个带有开关/案例的主类,它将调用其他类。 另外,让Car.java包含以下代码:
public class Car {
private int id;
private String name;
private int serie;
private double price;
Car() {
}
public Car(int id, String name, int serie, double price) {
this.id = id;
this.name = name;
this.serie = serie;
this.price= price;
}
}
有些类如“setName.java”和“setSerieAndPrice”:
public class setIdAndName {
public static void sName(){
//Car c = new Car();??
System.out.println("Insert an ID: ");
Scanner read = new Scanner(System.in);
int readId=read.nextInt();
int idOk=readId;
System.out.println("Write a name: ");
Scanner read2 = new Scanner(System.in);
String readName=read2.next();
String nameOk=readName;
//HERE IF WHERE I HAVE THE PROBLEM - HOW CAN I SET THE ID AND THE NAME TO THE ARRAYLIST CAR
c.setId(idOk);
c.setName(nameOk);
System.out.println("ID set: ");
System.out.println(c.getId());
}
}
所以..我的问题是: - 我应该在哪里声明我的ArrayListt = new ArrayList<>(); ?在主要或在Car.java? - 声明ArrayList后,如何从setIdAndName.java类访问它?
我希望你能帮帮我.. 非常感谢,非常感谢!
答案 0 :(得分:0)
你如何做到这一点。
1)您可以在主类中定义静态并直接调用
Main.arraylist.add(obj)
2)对象通过引用传递,因此您可以在每个接受ArrayList作为参数的类中定义一个方法,并且可以从该方法中添加项目。
因为它通过引用传递,它将在同一个对象中进行更改。
答案 1 :(得分:0)
问题1:您可以在任何地方声明您的列表:)这取决于您如何使用它。您将从您的经验中学习。
问题2:有很多方法可以访问它。此外,它取决于您以后使用该列表。一些简单的用法:
将列表传递给方法以扫描汽车信息。像这样:
public static void sName(ArrayList <Car> theList){
// input car info to Car c;
theList.add(c);
}
您可以直接访问列表。像这样:Main.theList.add(...);必须在Main类(Main.java文件)中声明theList。
public static void sName(){
// input car info to Car c;
Main.theList.add(c); // this list should be declared: static public ArrayList <Car> theList=new ArrayList<>();
}
我想告诉你另一个解决你的“任务”的方法:)
像这样更改你的setIdAndName类:
public class setIdAndName {
public static Car sName(){
Car c = new Car();
...
c.setId(idOk);
c.setName(nameOk);
return c;
}
}
将主要功能更改为:
public static void main(String[] args) {
ArrayList <Car> theList = new ArrayList <> ();
theList.add(setIdAndName.sName ()); // 1st car
theList.add(setIdAndName.sName ()); // 2nd car
// ...
}
我希望它会对你有所帮助。好学习:))