如何从另一种方法中的一个方法调用整数?

问题描述:

我是相当新的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!"); 
    } 
} 

而且这里是我得到真正卡住..说我有这样程序1的另一种方法,但在另一种方法在程序1哪能呼吁intMoney价值?

比方说,我有一个程序,并且我想intMoney在一个单独的方法中声明,以便当方法program2重复时,intMoney值不会更改,并且当再次调用该方法时它将会相同。

+0

不介意;在if语句中,支持在 - 100 – user1247717 2012-03-04 05:30:02

+0

之后,您可以轻松编辑您的文章以纠正错误。我们大多数人都畏惧看到类似的东西。 – 2012-03-04 05:38:19

你可以用”接入访问,因为it't作用域的方法在程序1变量。你应该这样做:

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;

此外,有什么用字串[] args参数,如果你不使用它们的?

+0

你的if语句到底分号......请更正.. – 2012-03-04 05:37:23

+0

,不应该他使用一个int变量,而不是整数的? – 2012-03-04 05:37:37

+0

@ShashankKadne Thx,修正。 – ebaxt 2012-03-04 05:39:31

首先你的程序是完全出于有这么多错误规章制度:

  1. intMoney具有功能scope.So,它不能从功能程序1()外部调用。您必须从此函数返回值才能在另一个函数中使用。
  2. 在你如果你正在检查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!"); 
    
    } 
    } 
    
+0

如果program1返回一个int ...声明intMoney为int ...为什么要为此创建一个Integer? – 2012-03-04 05:50:43

+0

有一个叫做autoboxing的概念,其中java会自动将Integer转换为int.By也可以使用int的方式。我只是尽量少修改代码。 – 2012-03-04 05:56:04

+0

BTW代码不是我的;;) – 2012-03-04 05:57:31