2

所以我只是想学习 Java,在看了一些教程并阅读了一些基本的东西之后,我对为什么它不会运行感到困惑:

package Test;

public class TestProg {
    public static void main(String[] args) {
        Fetch fetc = new Fetch();
        fetc.more(10, 20);
    }
}

这是 Fetch 类代码:

package Test;

public class Fetch {

    public Fetch() {

        System.out.println("Fetched!"); 

        int a = 1;
        int b = 2;
        int c;

        while (a < 100 && b < 200) {
            a++;
            b++;
            c = a + b;
            System.out.println(c);
        }

        public void more(int d, int e) {
            System.out.println(d + e);
        }
    }
}

我在 TestProg 中收到“未为 Fetch 类型定义方法更多(int,int)”错误。如果我删除有关“更多”方法的代码(在两个类中),其余代码将正常运行。我很困惑为什么会发生这种情况,因为代码与我正在研究的示例非常相似。

4

8 回答 8

5

您的方法more(int d, int e)Fetch()构造函数中

您的 fetch 方法应如下所示(注意标记为}关闭构造函数):

package Test;

public class Fetch {



    public Fetch() {

        System.out.println("Fetched!"); 

        int a = 1;
        int b = 2;
        int c;

        while (a < 100 && b < 200) {

            a++;
            b++;
            c = a + b;
            System.out.println(c);
        }
    }//<---- NOTE: closing constructor


    public void more(int d, int e) {

        System.out.println(d + e);


    }

}
于 2013-11-10T12:45:51.430 回答
4

more应该位于构造函数之外

这就是为什么缩进是极其重要的。我们将一起让地球成为一个更适合居住的地方——缩进你的代码:)

于 2013-11-10T12:45:28.217 回答
1

您似乎已经more在构造函数中声明了您的方法Fetch

这不应编译,也不应使该方法可从类外部访问。

more要解决此问题,请在方法声明之前添加一个右大括号。

于 2013-11-10T12:46:06.720 回答
1

More必须位于fetch构造函数之外。

于 2013-11-10T12:46:13.693 回答
1

在 while 循环之后你有一个丢失的 } 。有一个线索是这个类也会显示为有错误!

于 2013-11-10T12:46:13.557 回答
1

您已经more(int, int)Fetch() constructor. 请验证{}

当前代码

class  Fetch {
   public Fetch() {
        public void more(int d, int e) {
            System.out.println(d + e);
         }
    }
}

需要改成如下

class  Fetch {
   public Fetch() {

    }
    public void more(int d, int e) {
            System.out.println(d + e);
    }      
}
于 2013-11-10T12:46:16.760 回答
1

更多 应该在构造函数之外,更多的是你缺少右括号 ///

于 2013-11-10T12:49:19.370 回答
1

将您的 Fetch 类替换为以下内容,您在类中的大括号存在一些问题:

class Fetch {

    public Fetch() {

        System.out.println("Fetched!");

        int a = 1;
        int b = 2;
        int c;

        while (a < 100 && b < 200) {

            a++;
            b++;
            c = a + b;
            System.out.println(c);
        }
    }

    public void more(int d, int e) {

        System.out.println(d + e);
    }

}
于 2013-11-10T12:49:50.577 回答