所以几个星期前我刚开始使用Java,我正在努力教自己如何创建自己的方法。我编写了一个程序,在编译类"ClassTest“时添加两个数字。以下是错误:
H:\Java Things\ClassTest.java:10: error: cannot find symbol
GetNum(int1, int2);
^
symbol: method GetNum(int,int)
location: class ClassTest
1 error
Process completed.
以下是ClassTest的代码
import LotsOfMethods.*;
public class ClassTest
{
public static void main (String[] args)
{
int int1 = 5, int2 = 7;
GetNum(int1, int2);
}
}
这是ExampleMethod的代码
package LotsOfMethods;
public class ExampleMethod
{
public static int GetNum(int num1, int num2)
{
int result;
result = num1 + num2;
return result;
}
}
发布于 2012-10-31 15:24:06
首先,识别如何在Java中调用方法是很重要的。您需要指定实现该方法的对象以及正在调用的方法的名称。
当你写:
GetNum(int1, int2);
您没有指定将执行GetNum的对象。Java有一些默认行为来处理这种情况:它试图从代码周围的对象上下文中解析方法。因此,Java说,“我找不到属于这个GetNum对象的ClassTest ()方法”,您得到了错误:
H:\Java Things\ClassTest.java:10: error: cannot find symbol
GetNum(int1, int2);
您想要的方法在类ExampleMethod中。它是一个附加到ExampleMethod类的静态方法,这意味着您不需要实例化副本才能到达那里。相反,您可以这样做:
int result = ExampleMethod.GetNum(int1, int2);
带有静态方法的类提供了围绕这些方法的某种命名空间,因此该类本身提供了足够的数据来解析方法。如果您有一个非静态方法,则需要执行以下操作:
ExampleMethod example = new ExampleMethod();
int result = example.GetNum(int1, int 2);
我希望这能帮到你。
发布于 2012-10-31 15:22:58
可以将GetNum()
方法移动到ClassTest类中,也可以将GetNum()
调用更改为ExampleMethod.GetNum()
。不知道为什么有一个单独的类名为'ExampleMethod';通常,您通常不需要定义一个新的类来包含每个方法的定义。
https://stackoverflow.com/questions/13161116
复制相似问题