gpt4 book ai didi

java - 编写一个 Main 方法来调用对象?

转载 作者:行者123 更新时间:2023-12-01 19:34:59 25 4
gpt4 key购买 nike

我们正在使用 BlueJ 学习 Java,我发现 BlueJ 非常不清楚且令人困惑。我们收到了一项任务,第一步是“创建一个 main 方法来调用 Train 对象”。我确信他的意思是“调用 Train 方法”。

无论如何,我试图让 main 方法调用下面代码中的 Train 方法,因此当您在 BlueJ 中传递字符串参数时,它会执行 main 中的代码。就是这样。 Train 方法传入一个 String 和两个 int 值:

public static void main(String[] args)
{
Train train = new Train();
train.Train();
}

尝试执行此操作时,我不断收到错误消息,但不确定原因。

这是火车类的代码:

public class Train
{
//Fields
/* Destination of the Train */
private String destination = new String();

/* Train number - identifies the Train */
private int TrainNumber;

/* Capacity of the Train - how many customers can be in it */
private int capacity;

/* Number of customers currently in the Train */
private int numberInTrain;

/* Ticket price - how much a ticket costs. */
private int ticketPrice;

public static void main(String[] args)
{
Train train = new Train();
train.Train();
}

/** Constructor for Train
* @param dest the destination of the Train
* @param num the number of the Train
* @param cap the capacity of the Train
*/
public void Train(String dest, int num, int cap)
{
destination = dest;
capacity = cap;
TrainNumber = num;

numberInTrain = 0;
ticketPrice = 50;
}

//mutators
/* Records customer taking Train */
public void enterTrain ()
{
numberInTrain = numberInTrain + 1;
}

/* Records customer leaving Train */
public void leaveTrain ()
{
numberInTrain = numberInTrain - 1;
}

}

然而,这给了我一个错误,我无法从主程序运行该程序。任何有关正确方向的提示将不胜感激。

错误是:

Error:(30, 14) java: method Train in class TrainAssignment.Train cannot be applied to given types;
required: java.lang.String,int,int
found: no arguments
reason: actual and formal argument lists differ in length

编辑我已经尝试过了

public static void main(String[] args)
{
Train train = new Train();
train.Train(dest, num, cap);
}

这也会给出找不到变量的错误。 这些值需要来自用户输入。当创建一个对象时,我们输入目的地、人数以及每个对象的容量。

最佳答案

你的教授说得对。您想要调用 Train 对象。当你调用 Train train = new Train(); 时,即实例化了一个 Train 对象,并且会调用该类的构造函数。

本质上,这就是您在这里尝试做的事情:

public void Train(String dest, int num, int cap)

但是,这在这里不算作构造函数。构造函数没有返回类型,因此它甚至不能为 void。所以它会是这样的:

 public Train(String dest, int num, int cap)

这样做后,您可以删除 train.Train(); 并只保留 Train train = new Train();。但还有一个问题与此相关。当您调用 Train 对象时,构造函数将需要 3 个参数:您的 String 和两个 Int。所以当你调用该对象时,必须填写你想要的参数,例如 Train train = new Train("Canada",2,3);

编辑:

我发现您现在需要来自用户输入的参数。我建议查找 Scanner 类以了解如何获取用户输入。

关于java - 编写一个 Main 方法来调用对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58176928/

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