Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 同一类中的对象能否调用方法?_Java - Fatal编程技术网

Java 同一类中的对象能否调用方法?

Java 同一类中的对象能否调用方法?,java,Java,我试图理解的是,当我试图在同一个类中通过对象调用方法时,为什么会收到错误 我的语法看起来正确。我知道方法中的局部变量是未初始化的,我想看看编译器是否能够处理这个问题 然而,我的问题是,当我试图在类内的同一个类的对象上调用该方法时,我从编译器那里收到了一个愚蠢的错误 class Wool { public static void main (String [] args) { int add() { int x; int a = x + 3; return a; } Wool w = ne

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

我的语法看起来正确。我知道方法中的局部变量是未初始化的,我想看看编译器是否能够处理这个问题

然而,我的问题是,当我试图在类内的同一个类的对象上调用该方法时,我从编译器那里收到了一个愚蠢的错误

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类型的对象在另一个类中实例化,并且该对象在调用该方法时没有问题,那么我可以做得很好,以显示编译错误,即局部变量需要该方法中的值

我只是不明白为什么我不能在一节课上完成。如果可能的话,请你教育我

我将非常感激你的帮助


谢谢。

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

将代码更改为

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

您正在
main()
中声明一个方法。你不能那样做

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

因为
add()
未定义为类方法,但您在
main
中将其定义为“本地”方法,这在
java
中是不允许的。你必须把它改成

class Woo{

void add(){

....
}

public static void main(String[] args){

new Woo().add();

...
} 


}
您有一个直接位于方法内部的方法:

main(){
add() {
}
}

这在java中是非法的。

将方法add放在类的主体中,而不是放在主方法的主体中。或者更好:不要使用Java:)

您不能在方法中声明方法

试试这个:

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

int add() {
    //
}

为什么要在另一个方法中定义一个方法?java的可能副本不支持在方法中定义方法声明。感谢您的回答:)这会被称为错误吗^^