我对编程很新,我遇到了一些麻烦。基本上我要做的是让findCar方法循环通过名为cars的LinkedList并让它打印出汽车对象的ID。它会编译但是没有打印出来,有人可以解释一下这是为什么吗?
这是主要的课程
import java.io.*;
import java.util.*;
public class CarManger {
private LinkedList<Car> cars = new LinkedList<Car>();
public void setup()
{
cars.add(new Car(1));
cars.add(new Car(2));
cars.add(new Car(3));
}
public void main() {
char choice;
while ((choice = readChoice()) !='x' ) {
switch(choice) {
case 'a': findCar(); break;
}
}
}
private char readChoice() {
System.out.print("Your choice: ");
return In.nextChar();
}
public void findCar()
{
for (Car i: cars)
{
int value = i.getId();
System.out.println(value);
}
}
}
这是Car Object
public class Car {
private int id;
public Car(int id)
{
this.id = id;
}
public int getId() {
return this.id;
}
}
这是收集输入的In类
import java.util.*;
public class In
{ private static Scanner in = new Scanner(System.in);
public static String nextLine()
{ return in.nextLine(); }
public static char nextChar()
{ return in.nextLine().charAt(0); }
public static int nextInt()
{ int i = in.nextInt();
in.nextLine();
return i; }
public static double nextDouble()
{ double d = in.nextDouble();
in.nextLine();
return d; }
以下是修订后的代码
import java.io.*;
import java.util.*;
public class CarManger {
private LinkedList<Car> cars = new LinkedList<Car>();
public static void main(String [ ] args) {
CarManager carManager = new CarManager();
}
public CarManager () {
setup();
main();
}
答案 0 :(得分:6)
您的setup()
方法永远不会被调用,因此似乎没有汽车被添加到您的汽车列表中。
请注意,您的main方法需要是静态的并且有一个Strings数组参数(除非这不是您程序的起点main方法)。如果没有main方法,程序将编译,但不会运行。
我建议您创建一个有效的主方法:
public static void main(String[] args) {
}
在里面创建一个CarManager对象,在其上调用setup()
等等......
注意:如果我有一个名为findCar()
的方法,我可能会接受一个参数,这里,最好的参数可能是一个int来表示Car的id号,我会声明方法要返回一个Car对象,并在方法体内,我会搜索一个id与方法参数匹配的Car。方法签名看起来像这样:
public Car findCar(int id) {
// TODO:
// write code to loop through the cars list
// if we find a car whose getId() matches our parameter id int
// return it!
}
您的主要方法如下:
public static void main(String[] args) {
CarManager carManager = new CarManager();
// here you'd call methods on carManager
// for instance if CarManager had an addCar(...) method
Car car = new Car(4);
carManager.addCar(car);
}
注意,我不会调用您当前的setup()
方法或readChoice()
,因为它们看起来不对我,但如果没有您的具体作业要求,则很难猜测。
答案 1 :(得分:0)
您没有正确定义主要方法。它应该是这样的:
public static void main(String [ ] args)
此外,您应该调用setup()
方法来加载汽车数组。