一个方法可以被同一个类内的对象调用吗?

时间:2013-09-02 13:27:48

标签: java

我想要了解的是当我尝试在同一个类中居住时调用对象的方法时,我收到错误的原因。

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

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

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类型的对象在另一个类中实例化,并且该对象在调用该方法时没有问题,我可以做到以上情况,向我展示局部变量在该方法中需要值的编译错误。

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

帮助将非常感激。

谢谢。

6 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您在main()内声明了一个方法。你不能这样做。

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

答案 2 :(得分:0)

由于add()未定义为类方法,但您在main中将其定义为“本地”方法,java中不允许这样做。您必须将其更改为

class Woo{

void add(){

....
}

public static void main(String[] args){

new Woo().add();

...
} 


}

答案 3 :(得分:0)

您在方法中直接使用方法

main(){
add() {
}
}

这在java中是非法的。

答案 4 :(得分:0)

将您的方法添加到类的主体中,但不要添加到方法主体的主体中。或者更好:让Java独自:)

答案 5 :(得分:0)

您无法在方法中声明方法。

试试这个:

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

int add() {
    //
}