没有打印出来

时间:2015-04-03 13:28:31

标签: java

我对编程很新,我遇到了一些麻烦。基本上我要做的是让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();

}

2 个答案:

答案 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()方法来加载汽车数组。