我试图练习课程方法,因为我对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");
}
}
}
答案 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是面向对象的 你不能只拥有一个全局变量......它应该是一个静态变量,它有一个静态方法来处理那个变量