我现在感到非常沮丧,我沮丧的主要原因是以下错误:
LogicalAutomaton.java:16: error: cannot find symbol
Cellular[i][j] = new Cellular (null, Cellular[i+1][j], null, Cellular[i][j+1]);
^
symbol: variable Cellular
location: class LogicalAutomaton
类层次结构如下:
home --> code --> Automata --> automata
以下是代码:
这是类Cellular.java,在home / code / Automata / automata:
package automata;
public class Cellular {
private int state;
private Cellular upper, lower, left, right;
public Cellular (Cellular upper, Cellular lower, Cellular left,Cellular right) {
this.state = 0;
this.upper = upper;
this.lower = lower;
this.left = left;
this.right = right;
}
}
这是类LogicalAutomaton.java,在home / code / Automata中:
import automata.Cellular;
import java.util.Arrays;
public class LogicalAutomaton extends Cellular {
public static void main (String[] args) {
int n = 3;
Cellular[][] a = new Cellular[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == 0) {
if (j == 0) {
Cellular[i][j] = new Cellular (null, Cellular[i+1][j], null, Cellular[i][j+1]);
}
else {
if (j == n-1) {
Cellular[i][j] = new Cellular (null, Cellular[i+1][j], Cellular[i][j-1], null);
}
else {
Cellular[i][j] = new Cellular (null, Cellular[i+1][j], Cellular[i][j-1], Cellular[i][j+1]);
}
}
}
}
}
}
}
LogicalAutomaton.java的代码要长得多,但主要的想法是访问Cellular对象数组以初始化它们,每次我尝试这样做时,它都会抛出我说的错误。有趣的是,编译器并没有哀叹Cellular阵列的声明。
你知道我可能做错了吗?
提前谢谢!
编辑:
抱歉笨拙的问题;这是错误代码的一部分。
答案 0 :(得分:1)
您将数组定义为
Cellular[][] a = new Cellular[n][n];
但稍后再使用
Cellular[i][j] = new Cellular (null, Cellular[i+1][j], null, Cellular[i][j+1]);
实际上,你应该使用
a[i][j] = new Cellular (null, Cellular[i+1][j], null, Cellular[i][j+1]);
您收到的错误消息
LogicalAutomaton.java:16:错误:找不到符号 Cellular [i] [j] = new Cellular(null,Cellular [i + 1] [j],null,Cellular [i] [j + 1]); ^符号:变量蜂窝位置:类LogicalAutomaton
说我找不到名为Cellular的变量,而不是我找不到这个类。这是因为您尚未定义名为 Cellular 的变量,您定义的变量称为 a 。
答案 1 :(得分:0)
此问题是由于可访问性。 Cellular
类中无法访问LogicalAutomoton
类。检查CLASSPATH变量并检查import语句是否正确。