3

只是一个简单的类调用一个打印数组的类。我在 Eclipse 中遇到语法错误。我还收到一个错误,我没有名为 Kremalation 的方法。

public class AytiMain {

    public static void main(String[] args) {
        AytiMain.Kremalation();
    }
}

public class Kremalation {

    String[] ena = { "PEINAW", "PEINOUSA", "PETHAINW" };
    int i; // <= syntax error on token ";", { expected after this token

    for (i = 0; i <= ena.lenght; i++)
        System.out.println(ena[i]);
}
}
4

6 回答 6

5

你有一个方法之外的代码(它没有声明一个变量和/或初始化它),它是:

for (i=0; i<=ena.lenght; i++)
    System.out.println(ena[i]);

在 Java 中,代码必须驻留在方法中。你不能调用一个类,你必须调用一个类中声明的方法。

错误

class ClassName {
   for (...) 
}

正确

class ClassName {
  static void method() {
    for (...)
  }

  public static void main(String[] args) {
    ClassName.method();
  }
}
于 2012-10-09T16:42:29.553 回答
3

您不能将方法定义为类。它应该是

public static void kremalation()
{
String ena[]={"PEINAW","PEINOUSA","PETHAINW"};
int i;
for (i=0; i<=ena.lenght; i++)
    System.out.println(ena[i]);
}
于 2012-10-09T16:42:03.233 回答
1
public class AytiMain {


    public static void main(String[] args) {
        AytiMain.Kremalation();
    }

    public static void Kremalation() {// change here.

        String ena[]={"PEINAW","PEINOUSA","PETHAINW"};
        int i;

        for (i=0; i<=ena.lenght; i++)
            System.out.println(ena[i]);

    }    
}
于 2012-10-09T16:43:08.540 回答
0

解决这个问题的两种方法......

第一个在同一个文件中有 2 个类:

public class AytiMain {


    public static void main(String[] args) {

        new Kremalation().doIt();
    }

}

class Kremalation {

  public void doIt(){        // In Java Codes should be in blocks
                             // Like methods or instance initializer blocks

    String ena[]={"PEINAW","PEINOUSA","PETHAINW"};
    int i;

    for (i=0; i<=ena.lenght; i++)
        System.out.println(ena[i]);

   }

}

第二次将类更改为方法:

public class AytiMain {


    public static void main(String[] args) {
        AytiMain.Kremalation();
    }

    public static void Kremalation() {     // change here.

        String ena[]={"PEINAW","PEINOUSA","PETHAINW"};
        int i;

        for (i=0; i<=ena.lenght; i++)
            System.out.println(ena[i]);

    }    
}
于 2012-10-09T17:04:08.970 回答
0

两个可能的答案。

1)如果您想将其定义为类,请从第二个中删除 public。

2) 将Kremalation 移到右括号内,用void 替换类,使其成为静态方法。

于 2012-10-09T16:42:59.300 回答
0

您不能直接在类中包含可执行代码。添加一个方法并使用该类的实例来调用该方法。

public class Kremalation {

    public void method() {

        String ena[]={"PEINAW","PEINOUSA","PETHAINW"};
        int i;

        for (i=0; i<=ena.lenght; i++)
            System.out.println(ena[i]);
    }

}

现在,在你的主要方法中,写: -

public static void main(String[] args) {
    new Kremalation().method();    
}
于 2012-10-09T16:43:24.683 回答