Java variables not available in different methods within class - newbie
我是爪哇人,我到处找,但我没有得到一个简单的概念。
我将两个变量声明为int。我希望这两个变量对所有方法都是全局的。在第一个方法中,我想从用户输入中获取第一个变量的值。然后我希望第二个方法可以使用、识别和调用这个新值。但是,每次第一个方法结束时,变量的值都设置回0,第二个方法找不到用户在第一个方法输入中给它的值。我做错什么了?我需要以不同的方式声明变量吗?我需要以不同的方式声明我的方法吗?谢谢你的帮助!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import acm.program.*; public class FindRange extends ConsoleProgram { int num1; int num2; public void run() { println("This program finds the largest and smallest numbers."); getNum1(); getNum2(); // getNumUntilZero(); } public void getNum1() { int num1 = readInt("?:"); if (num1 == 0) { //do not accept 0 for first number println("Please try again without 0."); getNum1(); } } public void getNum2() { int num2 = readInt("?:"); if (num2 == 0) { //if 2nd number is 0, print 1st num as high and low nums println("Biggest number:" + num1); println("Smallest number:" + num1); } } } |
你的本地变量重新定义为同样的事情。这应该给个警告沿IDE的"本地变量隐藏线的一场"。在这样的范围的方法有一个
你需要参考的实例变量声明一个新的变量:不
1 2 3 4 | public void getNumX() { numX = readInt("?:"); //... } |
你看我这样删除的
实际上你已经创建了新的内部变量的方法。所以需要分配到类的值是变量,但变量:浸出法这样的变化
1 | int num2 = readInt("?:"); |
to
1 | num2 = readInt("?:"); |
和
1 | int num1 = readInt("?:"); |
to
1 | num1 = readInt("?:"); |
当你在做
这样做的样本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public void getNum1() { num1 = readInt("?:"); if (num1 == 0) { // do not accept 0 for first number println("Please try again without 0."); getNum1(); } } public void getNum2() { num2 = readInt("?:"); if (num2 == 0) { // if 2nd number is 0, print 1st num as high and low nums println("Biggest number:" + num1); println("Smallest number:" + num1); } } |