【问题标题】:How do I pass a parameter to a non-static method from another class? [duplicate]如何将参数从另一个类传递给非静态方法? [复制]
【发布时间】:2018-11-16 23:43:06
【问题描述】:

我目前被困在我的 Java 简介课程中的一个项目上,需要我能获得的任何帮助。我需要将主方法中的参数传递给另一个类中的非静态方法,然后将该类中的双精度值打印到控制台。

当建模尽可能简单时,它看起来像这样:

public class UserAccount {

    double accountBalance = 0.0;

    public void addToBalance(double amountToAdd) {
        accountBalance = accountBalance + amountToAdd;
    }

    public double getBalance() {
        return accountBalance;
    }
}

还有……

public class Driver {

    public static void main(String[] args) {
        System.out.println("Enter an amount to add to your balance:");
        Scanner sc = new Scanner(System.in);
        double input = sc.nextDouble();

        // I can't figure out these last two lines:

        UserAccount.addToBalance(input);
        System.out.println("Account Balance: " + UserAccount.getBalance());
    }
}

我觉得最后两行理论上应该允许我将扫描的输入传递给 addToBalance() 方法,然后通过 main 方法将余额显示到控制台。但是,这两行都不起作用,因为它们都在调用非静态方法。

上次发生这种情况时,我只是在被调用的方法中添加了静态修饰符。但是,我的教授确实为此扣除了 50 分(满分 100 分),因为规范中列出的方法不包括静态修饰符。所以我想我不能这样做。

我基本上只是想知道是否有任何方法可以在不使用静态方法的情况下完成所有这些工作?请记住,这是一门介绍性课程,因此任何可能的解决方案不应该太复杂(但我会在这一点上逐字逐句)。如果有人可以帮助我,将不胜感激,因为我现在急需帮助。

【问题讨论】:

  • 也许是UserAccount account = new UserAccount();account.addToBalance(input);account.getBalance();,你应该在课堂上多加注意:)。
  • 这甚至不应该编译,因为您没有实例化 UserAccount 对象。如果你这样做,这应该可以正常工作
  • 另外,类定义不应该有()。
  • @Michal 谢谢你的回答,因为我很感激,但是课程是在线的,教授只给我们留下了教科书和课堂讨论论坛。所以这不是在课堂上注意力的问题,而是我目前可用的资源稀缺。因此,我再次感谢您的帮助,但我可以不用您的个人评论。

标签: java class methods static static-methods


【解决方案1】:

为了访问非静态方法和变量,您必须创建该类的实例(对象)。将此添加到您的 main() 方法的顶部。

UserAccount u = new UserAccount ();

现在打电话,

u.addToBalance(input);

【讨论】:

    【解决方案2】:

    如果类不是静态的,那么你需要实例化它

    UserAccount ua = new UserAccount ();
    ua.addToBalance(input);
    System.out.println("Account Balance: " + ua.getBalance());
    

    【讨论】:

      猜你喜欢
      • 2013-05-03
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 2021-05-02
      相关资源
      最近更新 更多