【问题标题】:How do i call an integer from one method in another method?如何在另一种方法中从一种方法调用整数?
【发布时间】:2012-03-22 02:16:16
【问题描述】:

我对使用 Java 编程还很陌生...但这真的让我很困惑,我已经搜索了一段时间,但找不到明确的答案来寻找我正在寻找的东西...但是让我们说我有两种方法

public static void program1 (String[] args) {
    Integer intMoney;
    intMoney = 500;
}

public static void program2 (String[] args) {
    String strYes;
    strYes = JOptionPane.showInputDialog("type yes to subtract 100");
    if((strYes.equals("Yes") || (strYes.equals("yes")))) {
    /*((This is where I call the intMoney from program1) */ - 100;
    }else{
        JOptionPane.showMessageDialog(null, "Thats not yes!");
    }
}

这是我真正陷入困境的地方.. 假设我有另一个方法,例如 program1,但是我如何在另一个方法中调用 program1 中的 intMoney 值?

假设我有一个程序,我希望在单独的方法中声明 intMoney,这样当方法 program2 重复时,intMoney 的值不会改变,并且在再次调用该方法时它会保持不变.

【问题讨论】:

  • 别介意 ;在 if 语句中,应该在 - 100 之后
  • 您可以轻松地编辑您的帖子以纠正您的错误。我们大多数人都害怕看到这样的东西。

标签: java string class methods integer


【解决方案1】:

您不能访问 program1 中的变量,因为它的范围不限于方法。你应该这样做:

public class Foo {
    public static Integer intMoney;

    public static void program1(String[] args) {
        intMoney = 500;
    }

    public static void program2(String[] args) {
        String strYes;
        strYes = JOptionPane.showInputDialog("type yes to subtract 100");
        if ((strYes.equals("Yes") || (strYes.equals("yes"))))
        {
            Integer i = intMoney;
            Integer x = i - 100;

        }else{
            JOptionPane.showMessageDialog(null, "Thats not yes!");

        }
    }
}

当然,现在您需要先调用 program1 才能设置变量。你也可以像这样public static final Integer intMoney = 500;

另外,如果您不使用 String[] args 参数,它们有什么作用?

【讨论】:

  • 他不应该使用 int 变量而不是 Integer 吗?
  • @HovercraftFullOfEels 可能,不确定他是否在做任何导致拳击的事情?
  • 我真诚地怀疑这一点,因为他的问题很基本,所以他需要一个我下注的整数的几率很低。我敢打赌他不知道其中的区别。
【解决方案2】:

首先,你的程序完全不合规矩,有很多错误:

  1. intMoney 具有函数作用域。因此,不能从函数program1() 之外调用它。您必须从该函数返回值才能在另一个函数中使用。
  2. 在您的 if 中,您正在检查由 || 分隔的 2 个条件但两个条件相同。请使用一个。

    public static int program1 () {
    Integer intMoney;
    intMoney = 500;
    return intMoney;
    }
    
    public static void program2 () {
    String strYes;
    strYes = JOptionPane.showInputDialog("type yes to subtract 100");
    if((strYes.equals("Yes") || (strYes.equals("yes")))); {
    program1() - 100
    }else{
    JOptionPane.showMessageDialog(null, "Thats not yes!");
    
    }
    }
    

【讨论】:

  • 如果 program1 返回一个 int...将 intMoney 声明为 int...为什么要为此创建一个 Integer??
  • 有个概念叫autoboxing,java会自动把Integer转成int。顺便说一下你也可以用int。我只是尽量少修改你的代码。
猜你喜欢
  • 1970-01-01
  • 2015-08-14
  • 2011-07-05
  • 2021-09-07
  • 2013-02-10
  • 2020-06-18
  • 2014-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多