JAVA如何将全局变量放入函数参数?

时间:2016-01-26 07:20:29

标签: java string function methods global-variables

我试图练习课程方法,因为我对JAVA很新。在我的完整程序中,我使用其他全局变量,并且在我的其他方法中它们正常工作。我的问题是如何让我的公共String y在我的isNum()方法的参数内工作,以便在我可以使用的任何方法中使用isNum(y);它现在的方式是字符串y只在isNum的范围内,但我希望y在isNum的参数范围内是全局的。简单的答案非常感谢你。

public static String y;
public static boolean isNum(String y){

for(int i = 0; i < y.length(); i++){

if(!(y.charAt(i) >= 48 && y.charAt(i) <= 57)){

    return false;
    }
}

return true;

} 

我想在此循环中使用isNum并将x的值传递给y。 我知道x是一个int,y是一个字符串。我该如何做到这一点?

        x = input.nextInt();

        if(isNum(y){
        while(x <=0 || x > 3){
             System.out.println("Choose a correct gear number: ");

             x = input.nextInt();
        }
        switch(x){
            case 1:
            System.out.println("You're in Gear 1");
                break;
            case 2:
            System.out.println("Gear 2");
                break;

            case 3:
            System.out.println("Gear3");
        }
      }

    }

3 个答案:

答案 0 :(得分:2)

如果您希望isNum访问静态y变量,请使用类名称ClassName.y对其进行限定。

当您在方法中编写非限定变量名y时,局部变量y会隐藏同名的static变量。

编辑:重新阅读您的问题后,我不确定您的isNum方法是否需要y参数。如果您希望该方法使用静态变量y,则只需将其签名更改为public static boolean isNum()并保持方法体不变。

答案 1 :(得分:2)

全局变量不必投入功能。只需直接使用它们!
在一个班级中,直接使用它们。
在另一个类中,使用 ClassName.var

答案 2 :(得分:0)

目前尚不清楚你要做什么...... 如果该功能将始终检查&#34;全球&#34;变量y是一个数字,你应该简单地创建一个这样的类:

public class global
{
    private static String y;

    public static boolean isNum(){...}//no need to get y as parameter
}

你应该注意的是Java是面向对象的 你不能只拥有一个全局变量......它应该是一个静态变量,它有一个静态方法来处理那个变量

相关问题