【问题标题】:JAVA How do you put a global variable into a function parameter?JAVA如何将全局变量放入函数参数中?
【发布时间】:2016-05-02 17:04:26
【问题描述】:

我正在尝试练习类方法,因为我对 JAVA 很陌生。在我的完整程序中,我使用了其他全局变量,它们在我的其他方法中运行良好。我的问题是如何让 public 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");
        }
      }

    }

【问题讨论】:

  • java没有函数,也没有全局变量。

标签: java string function methods global-variables


【解决方案1】:

目前尚不清楚您要做什么.... 如果该函数将始终检查“全局”变量 y 是否为数字,则您应该简单地创建一个这样的类:

public class global
{
    private static String y;

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

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

【讨论】:

    【解决方案2】:

    全局变量不必放入函数中,直接使用即可!
    在一个类中,直接使用它们。
    在另一个类中,使用 ClassName.var

    【讨论】:

      【解决方案3】:

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

      当你在你的方法中写入不合格的变量名y时,局部变量y隐藏了同名的static变量。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-15
        • 2013-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多