当前位置: 首页 > 知识库问答 >
问题:

编写Main方法来调用对象?

欧阳俊明
2023-03-14

我们正在用蓝J学习爪哇,我发现蓝J非常不清楚和令人困惑。我们得到了一个赋值,第一步是“创建一个主方法来调用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;
    }

}

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

错误是:

错误:(30, 14) java: 方法 在类中训练 火车分配.火车不能应用于给定的类型;
必需: java.lang.字符串,整数,整型
找到:无参数
原因:实际和正式的参数列表长度不同

编辑我已经尝试过了

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

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

共有1个答案

曾嘉荣
2023-03-14

你的教授说得对。你想调用Train对象。当您调用Train train=new Train();这是实例化一个Train对象,并将调用类的构造函数。

基本上,这就是您在这里要做的:

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

然而,这里不算是构造函数。构造函数没有返回类型,因此它甚至不能是void。所以应该是这样的:

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

这样,您就可以移除< code >系列。train();并让< code > Train Train = new Train();。但是还有一个问题。当您调用Train对象时,构造函数将需要3个参数,您的String和两个int。所以在调用对象的时候,一定要用你想要的参数填充,比如< code > Train Train = new Train(" Canada ",2,3);

编辑:

我看到您现在需要来自用户输入的参数。我建议查找Scanner类,了解如何获得用户输入。

 类似资料:
  • 问题内容: 您可以在main方法内编写方法吗?例如,我找到了以下代码: 方法max可以在main方法内编码吗? 问题答案: 当Java 8发布时,Closure / Lambda功能应该可以实现,以便您可以在main方法中定义max方法。在此之前,您只能在特殊情况下在main方法中定义一个方法。 碰巧的是,您的问题确实属于特殊情况。有一个接口(可比较),其中包含比较两个相同类型的事物的逻辑。结果,

  • 我在这个上面有点卡住了。我正在编写一个包含两个类的java程序,然后是一个测试程序来测试类中的方法。我被困在主方法中调用下面的两个方法上。所有的类文件(测试程序类和另外两个类)都在编译,IDE没有给我任何错误消息,计算只是没有发生…… --主要方法代码: -账户类别代码: 注意:平衡设置器正在工作,因为它在测试程序的前面被调用... 非常感谢任何帮助!!! 账户类别的完整代码: 主要方法完整代码:

  • 我有下面的类,我测试了method1,并模拟了method2和method3。我只测试这样的用例:*如果method2调用是OK,那么==>OK*如果method2抛出NotFoundException,method3返回OK==>OK*如果method2抛出NotFoundException,method3抛出ServiceException==>ServiceException确实抛出了 为了

  • 如果输入正确的值(int值),该程序工作正常。但是,当我输入一个字符或任何其他错误的值时,它会显示错误的输入消息并再次调用main方法。唯一的问题是在调用main方法并输入正确的输入后,它会打印出额外的数据,为什么?

  • 我的作业是为一家正在补货的珠宝店计算税金和附加费,我遇到了一点小麻烦。我三次使用一种叫做calcExtraTax的方法来计算劳动率以及州税和联邦税。然后,我需要获取该方法的每个实例的结果,并将值传递给我的main方法中的适当变量。这是我的代码现在的样子(显然不完整): 我想弄清楚的是,我还需要在我的第二种方法中添加什么,以便每次都能够根据公式中使用的税率变量将结果传递到不同的税收成本变量中。

  • 问题内容: 我有 但后来当我打电话从通过运行以下命令在命令行上,JAVA抱怨说,你不能调用从静态功能的方法。 所以我的问题是:如何从主方法调用方法,如果不可能,使用java命令从命令行运行程序后,有哪些替代策略可以调用方法。 问题答案: 您只能针对类的实例调用类似的实例方法(顺便说一下,这是一个非法的方法名称): 另外,如果对您的设计有效,则也使它成为静态。