Java 没有打印出来
我对编程很陌生,有点麻烦。基本上,我要做的是让findCar方法通过名为cars的LinkedList循环,并让它打印出car对象的id。它将被编译,但没有被打印出来,有人能解释一下为什么会这样吗 这是主课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
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,您能提供吗举个例子说明如何做到这一点?我试着用一个根类来做,但没有成功。很抱歉打扰您,我感谢您的帮助。