所以我几周前就开始使用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;
}
}
答案 0 :(得分:1)
首先,重要的是要认识到如何在Java中调用方法。您需要指定将实现该方法的对象以及您正在调用的方法的名称。
当你写:
GetNum(int1, int2);
您没有指定将执行GetNum的对象。 Java有一些默认行为来处理这种情况:它尝试从代码周围的对象上下文中解析方法。所以Java说,“我找不到属于这个ClassTest对象的GetNum()方法,”你得到错误:
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);
我希望这会有所帮助。
答案 1 :(得分:0)
您可以将GetNum()
方法移至ClassTest类,也可以将GetNum()
调用更改为ExampleMethod.GetNum()
。不确定为什么你有一个名为'ExampleMethod'的单独类;通常,您通常不需要定义一个新类来包含每个方法的定义。