我正在尝试为AI中的经典水壶问题建模。我创建了一个“ JugsState”类,该类存储两个水罐的当前状态,即jug1中有多少公升水,jug2中有多少公升水。此外,我想存储每个水罐可以容纳的最大水量,我将从用户那里获得输入的最大水量。由于这(两个水罐的容量)在整个过程中都是恒定的,因此我将它们声明为静态最终变量。但是我无法在构造函数中初始化它们。除此之外,还有其他替代方法可以将max_jug变量封装在类JugsState中吗?
class JugsState
{
private static final int max_jug1,max_jug2;
private int jug1,jug2; //stores the current amount of water in the jugs.
JugsState(int a1,int a2)
{
max_jug1 = a1;
max_jug2 = a2;
}
}
错误:“无法将值分配给最终变量max_jug1”错误:“无法将值分配给最终变量max_jug2”
您无法更改final
变量,因为它是final
。但是,可以在声明它时将其设置为所需的任何值。您可以创建一个静态函数,以获取罐子的最大值。如果要从System.in获取它,可能是这样的:
private static int getMax(){
System.out.println("Enter the maximum for a jar:");
Scanner in=new Scanner(System.in);
return in.nextInt();
}
然后使用
private static final int max_jug1=getMax();
private static final int max_jug2=getMax();
代替
private static final int max_jug1, max_jug2;
这将在程序运行的其余时间内设置这些变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句