-1

我试图理解的是为什么当我尝试通过一个对象调用一个方法同时驻留在同一个类中时会收到错误消息。

我的语法看起来是正确的。我了解方法内部的局部变量未初始化,并想看看编译器是否能够选择它。

然而,我的问题是,当我尝试在类中调用同一类的对象上的方法时,我从编译器收到一个愚蠢的错误。

class Wool {

public static void main (String [] args) {

int add() {
int x;
int a = x + 3;
return a;

}

Wool w = new Wool ();

System.out.print("something here " + w.add());


} // end main

} // end class

我从编译器收到的错误是:

c Wool.java
Wool.java:5: ';' expected
int add() {
    ^

如果 Wool 类型的对象在另一个类中实例化,并且该对象在调用该方法时没有问题,则我可以很好地执行上述操作,以向我显示局部变量在该方法中需要一个值的编译错误。

我只是不明白为什么我不能在一堂课上做到这一点。如果可能的话,请你教育我。

帮助将不胜感激。

谢谢你。

4

6 回答 6

5

您不能在另一个方法中定义方法。您必须在add方法之外声明该main方法。

将您的代码更改为

class Wool {

    int add() {
        int x = 0; // give a value to avoid another error
        int a = x + 3;
        return a;
    }

    public static void main (String [] args) {  
        Wool w = new Wool ();
        System.out.print("something here " + w.add());
    } // end main

} // end class
于 2013-09-02T13:29:42.003 回答
0

你在里面声明一个方法main()。你不能这样做。

方法必须在类中声明,而不是在其他方法中。

于 2013-09-02T13:29:42.217 回答
0

因为add()没有定义为类方法,但是你将它定义为内部的“本地”方法main,这是不允许的java。您必须将其更改为

class Woo{

void add(){

....
}

public static void main(String[] args){

new Woo().add();

...
} 


}
于 2013-09-02T13:29:53.673 回答
0

您在方法中直接有一个方法:

main(){
add() {
}
}

这在java中是非法的。

于 2013-09-02T13:30:09.673 回答
0

将您的方法 add 放在类的主体中,但不要放在方法主体的主体中。或者更好:别管Java :)

于 2013-09-02T13:31:34.890 回答
0

您不能在方法中声明方法

试试这个:

public static void main (String[] arts) {
     //
}

int add() {
    //
}
于 2013-09-02T13:33:52.783 回答