gpt4 book ai didi

java - 没有打印任何内容

转载 作者:行者123 更新时间:2023-12-01 07:56:27 26 4
gpt4 key购买 nike

我对编程很陌生,但遇到了一些麻烦。基本上我想做的是让 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);
}
}

}

这是汽车对象

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

}

最佳答案

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

请注意,您的 main 方法必须是静态的,并且有一个字符串参数数组(除非这不是您程序的起始 main 方法)。如果没有 main 方法,程序可以编译,但无法运行。

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

public static void main(String[] args) {

}

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

注意:如果我有一个名为 findCar() 的方法,我可能会让它接受一个参数,这里,最好的参数可能是一个 int 来表示汽车的 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() 因为它们在我看来不正确,但没有您的具体分配要求,很难猜。

关于java - 没有打印任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29433135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com