“java中的简单程序中的类型”错误没有定义该方法

时间:2013-11-10 12:43:09

标签: java

所以我只是想学习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)方法。如果我删除有关“更多”方法的代码(在两个类中),其余代码将正常运行。我很难过为什么会发生这种情况,因为代码与我正在研究的例子非常相似。

8 个答案:

答案 0 :(得分:5)

您的方法more(int d, int e)位于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);


    }

}

答案 1 :(得分:4)

more应位于外部构造函数。

这就是为什么缩进非常重要的原因..我们一起让这个星球成为一个更适合居住的地方 - 缩进你的代码:)

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

答案 5 :(得分: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);
    }      
}

答案 6 :(得分:1)

更多应该在构造函数之外,并且更多地忽略了大括号///

答案 7 :(得分: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);
    }

}