Java &引用;“类型”的非法启动&&引用;类、接口或枚举应为“;
当我编译下面的java代码时,它抛出Java &引用;“类型”的非法启动&&引用;类、接口或枚举应为“;,java,Java,当我编译下面的java代码时,它抛出类型的非法开始&类、接口或枚举预期的错误 在下面代码中的Percolation类中,声明了属于另一个类的WeightedQuickUnionUF数据类型。WeightedQuickUnionUF类存储在当前工作目录中名为“algs4.jar”的jar文件中 我已经检查了好几次代码,但都没有发现漏洞,完全卡住了 代码如下: public class Percolation{ public static Percolation(int n){
类型的非法开始
&类、接口或枚举预期的
错误
在下面代码中的Percolation类中,声明了属于另一个类的WeightedQuickUnionUF数据类型。WeightedQuickUnionUF类存储在当前工作目录中名为“algs4.jar”的jar文件中
我已经检查了好几次代码,但都没有发现漏洞,完全卡住了
代码如下:
public class Percolation{
public static Percolation(int n){
boolean[][] A=new boolean[n][n];
}
int i,j;
WeightedQuickUnionUF WQUF=new WeightedQuickUnionUF[n*n+2];
for(i=1;i<=n;i++)
{
WQUF.union(0,i);
}
for (i=n*n-n+1;i<=n*n;i++)
{
WQUF.union(n*n+1,i);
}
do {
i=StdRandom.uniform(n-1)+1;
j=StdRandom.uniform(n-1)+1;
} while(A[i][j]!=0)
open(i,j);
private static int xyto1D(int x,int y){
return (n*x+y);
}
public static void open(int i,int j){
A[i][j]=1;
if(A[i-1][j]==1) {WQUF.union(xyto1D(i-1,j),xyto1D(i,j))};
if(A[i+1][j]==1) {WQUF.union(xyto1D(i+1,j),xyto1D(i,j))};
if(A[i][j-1]==1) {WQUF.union(xyto1D(i,j-1),xyto1D(i,j))};
if(A[i][j+1]==1) {WQUF.union(xyto1D(i,j+1),xyto1D(i,j))};
}
public static boolean isOpen(int x,int y){
return (A[x][y]==1);
}
public static boolean isFull(int x,int y){
return (WQUF.connected(xyto1D(x,y),0));
}
public static boolean percolates(){
for (i=n*n-n+1;i<=n*n;i++)
{
if ((isFull(i))&&(isOpen(i))) return TRUE;
}
return FALSE;
}
}
我在编译过程中遇到以下错误:
35 errors found:
File: C:\Users\Administrator\algs4\Percolation.java
[line: 7]
Error: illegal start of type
File: C:\Users\Administrator\algs4\Percolation.java
[line: 7]
Error: <identifier> expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 7]
Error: ';' expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 7]
Error: <identifier> expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 7]
Error: <identifier> expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 7]
Error: <identifier> expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 7]
Error: illegal start of type
File: C:\Users\Administrator\algs4\Percolation.java
[line: 7]
Error: <identifier> expected
File: C:\Users\Administrator\algs4\Percolati
on.java
[line: 8]
Error: ';' expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 9]
Error: illegal start of type
File: C:\Users\Administrator\algs4\Percolation.java
[line: 9]
Error: illegal start of type
File: C:\Users\Administrator\algs4\Percolation.java
[line: 9]
Error: <identifier> expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 11]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 11]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 11]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 14]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 17]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 18]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 20]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 22]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 23]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 25]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 26]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 27]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 28]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 29]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 30]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 32]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 33]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 35]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 36]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 37]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 37]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 40]
Error: class, interface, or enum expected
File: C:\Users\Administrator\algs4\Percolation.java
[line: 42]
Error: class, interface, or enum expected
发现35个错误:
文件:C:\Users\Administrator\algs4\Percolation.java
[第7行]
错误:类型的开头非法
文件:C:\Users\Administrator\algs4\Percolation.java
[第7行]
错误:应为
文件:C:\Users\Administrator\algs4\Percolation.java
[第7行]
错误:';'预期
文件:C:\Users\Administrator\algs4\Percolation.java
[第7行]
错误:应为
文件:C:\Users\Administrator\algs4\Percolation.java
[第7行]
错误:应为
文件:C:\Users\Administrator\algs4\Percolation.java
[第7行]
错误:应为
文件:C:\Users\Administrator\algs4\Percolation.java
[第7行]
错误:类型的开头非法
文件:C:\Users\Administrator\algs4\Percolation.java
[第7行]
错误:应为
文件:C:\Users\Administrator\algs4\Percolati
on.java
[第8行]
错误:';'预期
文件:C:\Users\Administrator\algs4\Percolation.java
[第9行]
错误:类型的开头非法
文件:C:\Users\Administrator\algs4\Percolation.java
[第9行]
错误:类型的开头非法
文件:C:\Users\Administrator\algs4\Percolation.java
[第9行]
错误:应为
文件:C:\Users\Administrator\algs4\Percolation.java
[第11行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第11行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第11行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第14行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第17行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第18行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第20行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第22行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第23行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第25行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第26行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第27行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第28行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第29行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第30行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第32行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第33行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第35行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第36行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第37行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第37行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第40行]
错误:应为类、接口或枚举
文件:C:\Users\Administrator\algs4\Percolation.java
[第42行]
错误:应为类、接口或枚举
如果关闭第四行中的构造函数,则每一个错误都是此操作的结果
public static Percolation(int n){
boolean[][] A=new boolean[n][n];
} // <<--- here
公共静态渗流(int n){
布尔[][]A=新的布尔[n][n];
}//还有一个问题:(除了许多其他语法错误外,您需要逐行调试,以便了解违反Java语法规则的地方和所有内容)
您应该将其更改为:
WeightedQuickUnionUF WQUF=new WeightedQuickUnionUF(n*n+2);
您需要将分号放在while语句的末尾
do {
i=StdRandom.uniform(n-1)+1;
j=StdRandom.uniform(n-1)+1;
} while(A[i][j]!=0);
代码似乎有很多问题。我建议您使用EclipseIDE。在Java中,每个可执行代码(初始化除外)都需要放在一个块(静态或函数)中
但是,在文件的第7行,类的主体中有一个for
循环,该循环无效。请将其放入构造函数或其他函数中
事实上,您发布的代码还有一个问题。您已声明了不允许的静态构造函数。构造函数不能是静态的
public static Percolation(int n) { // illegal
boolean[][] A = new boolean[n][n];
}
假设从第7行开始的代码是构造函数的一部分,下面是应该可以工作的代码
public class Percolation {
public Percolation(int n) {
boolean[][] A = new boolean[n][n];
int i, j;
WeightedQuickUnionUF WQUF = new WeightedQuickUnionUF[n * n + 2];
for(i=1;i<=n;i++){
WQUF.union(0,i);
}
for (i=n*n-n+1;i<=n*n;i++){
WQUF.union(n*n+1,i);
}
do{
i=StdRandom.uniform(n-1)+1;
j=StdRandom.uniform(n-1)+1;
} while(A[i][j]!=0); //add this semicolon as well.
open(i,j);
}
private static int xyto1D(int x, int y) {
return (n * x + y);
}
public static void open(int i,int j){
A[i][j]=1;
if(A[i-1][j]==1) {WQUF.union(xyto1D(i-1,j),xyto1D(i,j))};
if(A[i+1][j]==1) {WQUF.union(xyto1D(i+1,j),xyto1D(i,j))};
if(A[i][j-1]==1) {WQUF.union(xyto1D(i,j-1),xyto1D(i,j))};
if(A[i][j+1]==1) {WQUF.union(xyto1D(i,j+1),xyto1D(i,j))};
}
public static boolean isOpen(int x, int y) {
return (A[x][y] == 1);
}
public static boolean isFull(int x, int y) {
return (WQUF.connected(xyto1D(x, y), 0));
}
public static boolean percolates() {
for (i = n * n - n + 1; i <= n * n; i++) {
if ((isFull(i)) && (isOpen(i)))
return TRUE;
}
return FALSE;
}
}
公共类过滤{
公共渗滤(int n){
布尔[][]A=新的布尔[n][n];
int i,j;
WeightedQuickUnionUF WQUF=新的WeightedQuickUnionUF[n*n+2];
对于(i=1;它似乎应该是构造函数,而不是方法。还有一件事是,构造函数不能有static
修饰符。代码中还有很多问题。例如A
不是类的字段,而是在方法中使用的。赋值不是这个规则的例外。它是声明。@RohitJa在Yes中,sry表示不具体。我指的是初始化,如private List x=new ArrayList();您是否使用IDE?@psjinx请不要使用代码格式
public static Percolation(int n) { // illegal
boolean[][] A = new boolean[n][n];
}
public class Percolation {
public Percolation(int n) {
boolean[][] A = new boolean[n][n];
int i, j;
WeightedQuickUnionUF WQUF = new WeightedQuickUnionUF[n * n + 2];
for(i=1;i<=n;i++){
WQUF.union(0,i);
}
for (i=n*n-n+1;i<=n*n;i++){
WQUF.union(n*n+1,i);
}
do{
i=StdRandom.uniform(n-1)+1;
j=StdRandom.uniform(n-1)+1;
} while(A[i][j]!=0); //add this semicolon as well.
open(i,j);
}
private static int xyto1D(int x, int y) {
return (n * x + y);
}
public static void open(int i,int j){
A[i][j]=1;
if(A[i-1][j]==1) {WQUF.union(xyto1D(i-1,j),xyto1D(i,j))};
if(A[i+1][j]==1) {WQUF.union(xyto1D(i+1,j),xyto1D(i,j))};
if(A[i][j-1]==1) {WQUF.union(xyto1D(i,j-1),xyto1D(i,j))};
if(A[i][j+1]==1) {WQUF.union(xyto1D(i,j+1),xyto1D(i,j))};
}
public static boolean isOpen(int x, int y) {
return (A[x][y] == 1);
}
public static boolean isFull(int x, int y) {
return (WQUF.connected(xyto1D(x, y), 0));
}
public static boolean percolates() {
for (i = n * n - n + 1; i <= n * n; i++) {
if ((isFull(i)) && (isOpen(i)))
return TRUE;
}
return FALSE;
}
}