调用自己的方法时出错

时间:2012-10-31 15:13:17

标签: java methods

所以我几周前就开始使用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;
    }
}

2 个答案:

答案 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'的单独类;通常,您通常不需要定义一个新类来包含每个方法的定义。