Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 没有打印出来_Java - Fatal编程技术网

Java 没有打印出来

Java 没有打印出来,java,Java,我对编程很陌生,有点麻烦。基本上,我要做的是让findCar方法通过名为cars的LinkedList循环,并让它打印出car对象的id。它将被编译,但没有被打印出来,有人能解释一下为什么会这样吗 这是主课 import java.io.*; import java.util.*; public class CarManger { private LinkedList<Car> cars = new LinkedList<Car>(); public void se

我对编程很陌生,有点麻烦。基本上,我要做的是让findCar方法通过名为cars的LinkedList循环,并让它打印出car对象的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);
   } 
  }

 }
下面是课堂上收集输入的方法

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();

}
import java.io.*;
导入java.util.*;
公共课卡曼格尔{
私有LinkedList汽车=新LinkedList();
公共静态void main(字符串[]args){
CarManager CarManager=新的CarManager();
}
公共汽车管理器(){
设置();
main();
}
您的
setup()
方法从未被调用,因此似乎没有汽车被添加到您的汽车列表中

请注意,main方法需要是静态的,并且需要有一个字符串数组参数(除非这不是程序的起始点main方法)。如果没有main方法,程序将编译,但不会运行

我建议您创建一个有效的main方法:

public static void main(String[] args) {

}
并在内部创建一个CarManager对象,对其调用
setup()
,等等

注意:如果我有一个名为
findCar()的方法
,我可能会让它接受一个参数,在这里,最好的参数可能是一个int来表示汽车的id号,我会声明返回汽车对象的方法,在方法体中,我会搜索id与方法参数匹配的汽车。方法签名如下:

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);
}
public static void main(String [ ] args)
您的主要方法如下所示:

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);
}
public static void main(String [ ] args)
请注意,我不会调用您当前的
setup()
方法或
readChoice()
,因为我觉得它们不合适,但如果没有您特定的作业要求,很难猜测。

您的
setup()
方法从未被调用,因此您的车辆列表中似乎没有添加任何车辆

请注意,main方法需要是静态的,并且需要有一个字符串数组参数(除非这不是程序的起始点main方法)。如果没有main方法,程序将编译,但不会运行

我建议您创建一个有效的main方法:

public static void main(String[] args) {

}
并在内部创建一个CarManager对象,对其调用
setup()
,等等

注意:如果我有一个名为
findCar()的方法
,我可能会让它接受一个参数,在这里,最好的参数可能是一个int来表示汽车的id号,我会声明返回汽车对象的方法,在方法体中,我会搜索id与方法参数匹配的汽车。方法签名如下:

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);
}
public static void main(String [ ] args)
您的主要方法如下所示:

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);
}
public static void main(String [ ] args)

请注意,我没有调用您当前的
setup()
方法或
readChoice()
,因为我觉得它们不合适,但如果没有您特定的作业要求,很难猜测。

您没有正确定义主方法。应该是这样的:

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);
}
public static void main(String [ ] args)

另外,您应该调用
setup()
方法来加载汽车数组。

您没有正确定义主方法。它应该是这样的:

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);
}
public static void main(String [ ] args)

另外,您应该调用
setup()
方法加载汽车数组。

啊,所以我需要在某个时候调用它来添加汽车?这是被忽略的最简单的事情:p感谢气垫船,从您所看到的情况来看,不会有任何其他问题或改进建议?@Mark:请参见编辑。您的代码不应该按编写的方式运行,因为没有有效的主代码我已经添加了public void main(String[]args){setup();main();}但是编译器现在说我“非静态方法setup()不能从静态上下文引用”我该如何解决这个问题?@Mark:由于您调用setup和main时将它们视为静态的,而它们不是,也不应该是静态的,所以不应该编译这些代码。如上所述,在您的静态main方法中,您必须创建一个CarManager实例,然后在此实例上调用方法。@Hovercraft满是EEL,您能提供吗e这是如何做到的一个例子?我试着用根类来做,但没有成功。很抱歉打扰你,我感谢你的帮助。啊,所以我需要在某个时候调用它来添加汽车?这是被忽略的最简单的事情:P感谢气垫船,从你所看到的,你不会有任何其他问题或改进建议?@Mark:请参见编辑。由于没有有效的main方法,您的代码不应以书面形式运行。我已添加了public void main(String[]args){setup();main();}但是编译器现在说我“非静态方法setup()不能从静态上下文引用”我该如何解决这个问题?@Mark:由于您调用setup和main时将它们视为静态的,而它们不是,也不应该是静态的,所以不应该编译这些代码。如上所述,在您的静态main方法中,您必须创建一个CarManager实例,然后在此实例上调用方法。@Hovercraft满是EEL,您能提供吗举个例子说明如何做到这一点?我试着用一个根类来做,但没有成功。很抱歉打扰您,我感谢您的帮助。