理解java代码有问题吗?
我不懂这个密码,你能解释一下吗理解java代码有问题吗?,java,Java,我不懂这个密码,你能解释一下吗 grid是一个int[][] distbest已初始化 double distbest int turn = 60; if (g > 1) this.grid = turn(distbest * turn).grid; else this.grid = turn(-distbest * turn).grid; 代码非常简单,所以你不明白怎么办 可能让您感到困惑的是,turn作为变量名和方法名的双重使用-turn(distbest*turn)是一
grid
是一个int[][]
distbest
已初始化
double distbest
int turn = 60;
if (g > 1)
this.grid = turn(distbest * turn).grid;
else
this.grid = turn(-distbest * turn).grid;
代码非常简单,所以你不明白怎么办
可能让您感到困惑的是,
turn
作为变量名和方法名的双重使用-turn(distbest*turn)
是一个方法调用,返回对象的grid
字段被分配给this.grid
除了turn
变量是int
类型外,还必须有int[][]turn(double)
方法,该方法未显示。通常认为将方法命名为变量是不好的做法,因为它会导致与您所经历的混乱类型完全相同的混乱。如果可能,请考虑重命名变量或方法。本节:
turn(distbest * turn)
这意味着有一个函数turn
,它返回一个对象,该对象包含一个以double作为参数的grid
。代码中没有显示的是返回类型
因此,我可以说,函数的声明类似于
Grid turn(double d);
其中,Grid
(虚构)具有public
属性int[]Grid
(这就是为什么turn(distbest*turn)。Grid
是可能的)
我的所有这些都是基于上面列出的示例代码。另一个
turn
是一个参数。你对它有什么不了解?你对哪一块有问题?是的,我们可以详细解释这段非常基本的代码的每一个部分都做了什么-但是如果你需要的话,你不应该问SO,而应该学习编程的基础知识。你能在你的源代码中找到它吗?这个列表缺少任何人需要分析的大部分内容。我建议发布完整的代码。是的,我刚刚发现它,我有点困惑,因为turn既是变量又是方法。现在很清楚,谢谢。我不知道变量可能有方法名。感谢you@Christophe:语法(特别是方法名称后的大括号)允许编译器区分方法调用和变量使用,因此不必为两者都使用一个命名空间。