0 java math calculator coordinates
我有一个普通的Java代码,只计算一个x坐标,但它只是0;
private static final int startX = (Level.WIDTH / 2) - (Block.LENGTH * (Level.COLUMNS / 2));
Run Code Online (Sandbox Code Playgroud)
在计算时:
Level.WIDTH = 1000;
Block.LENGTH = 41;
Level.COLUMNS = 12;
Run Code Online (Sandbox Code Playgroud)
按照我的计算它必须是254,但它总是0.有人知道我的错误吗?
private static final int startX = (Level.WIDTH / 2) - (Block.LENGTH * (Level.COLUMNS / 2));
Run Code Online (Sandbox Code Playgroud)
初始化它所属的类时,将对此变量求值一次.在这种情况发生时,变量这取决于(Level.WIDTH,Block.LENGTH,Level.COLUMNS)很可能仍包含0.
当声明其值取决于其他变量值的最终变量时,这些变量也应该是final,并在依赖于它们的变量之前进行初始化.
这不是强制性的,但是你的代码在其他方面没有多大意义,因为改变,例如,Level.COLUMNSafter 的值startX被初始化不会改变它的值startX,所以它似乎保持不一致的值.