未定义的方法为什么?

时间:2015-06-26 20:47:47

标签: java

请帮忙。我不知道为什么这样一个方法会产生错误,包括这种类的未定义方法。我以前用过这样的,没有错误。我定义了两个包含方法的类:

import java.util.Scanner;
public class f1 {
    private int h;

    public static Scanner sc = new Scanner(System.in);

    public void main(String args[])
    {
        System.out.println("Set health");
         h = sc.nextInt();
         l(h);
    }
}
public class f2 {

    private int health;
    public void l(int h)
    {
        health = h;
        System.out.println(health);
    }
}

2 个答案:

答案 0 :(得分:0)

您的语法" l(h)"表示您正在调用方法,因此编译器知道这么多。如果编译器说"未定义的方法",那么它拼写错误(不是你的情况)或者它没有在编译器期望它的(或)位置定义。

您的方法l(int)属于不同的类。编译器如何知道在那里找到它,而不是在程序中的其他类中?

将来:当您收到错误消息时,请将其发布;在这种情况下,我知道错误消息是什么样的,所以它没有必要,但一般来说,在这个论坛上,仅仅说出消息的内容是不够的,你应该直接发布文本。

答案 1 :(得分:0)

你的问题在于:

   public void main(String args[])
   {
        System.out.println("Set health");
        h = sc.nextInt();
        l(h);  //Root of your problems
   }

方法l()在类f1的范围内未定义。意味着f1无法理解l()是什么。要让class f1知道它是什么,您可以:

   public void main(String args[])
   {
        System.out.println("Set health");
        h = sc.nextInt();

        f2 obj = new f2();  //create an object of class f2
        obj.l(h);  //Now they know l() comes from an f2 object
   }