请帮忙。我不知道为什么这样一个方法会产生错误,包括这种类的未定义方法。我以前用过这样的,没有错误。我定义了两个包含方法的类:
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);
}
}
答案 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
}