You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写简易加法程序时主类无法识别adder方法的问题求助

为何主类无法识别adder方法?

我编写了一个简易加法程序,将adder方法移到单独的类后,主类第14行出现以下编译错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method Adder(int, int) is undefined for the type tester
at Relearn.tester.main(tester.java:14)

主类代码(tester.java):

public static void main(String[] args) {
    Scanner keyboard = new Scanner (System.in);
    int number1;
    int number2;
    int result = 0;
    System.out.println("Enter the first number");
    number1 = keyboard.nextInt();
    System.out.println("Enter the second number");
    number2 = keyboard.nextInt();
    result = adder(number1, number2); // 报错行
    System.out.println(result);
    keyboard.close();
}
}

方法类代码(methodology.java):

package Relearn;

public class methodology {
    public static int adder(int number1, int number2) {
        int num1 = number1;
        int num2 = number2;
        int sum = num1 + num2;
        
        return sum;
    }
}

此前将adder方法放在主类中用private修饰时能正常运行,移到另一个类后就报错了,求解决办法。


问题原因及解决方案

1. 静态方法调用方式错误

adder是methodology类的静态方法,跨类调用静态方法必须通过类名.方法名()的格式,不能直接写方法名(仅同类别内调用可省略类名)。

修改主类中的调用代码:

result = methodology.adder(number1, number2);

2. 包与导入问题

  • 如果主类tester不在Relearn包下,必须在主类开头导入methodology类:
    import Relearn.methodology;
    
  • 如果主类在Relearn包下,要确保主类顶部添加包声明,同时别忘了导入Scanner类(你当前主类代码缺少这个导入,也会引发编译错误):
    package Relearn;
    import java.util.Scanner;
    
    public class tester {
        public static void main(String[] args) {
            // ... 原有逻辑代码
        }
    }
    

3. 大小写敏感问题

错误提示中显示的是Adder(int, int)(首字母大写),但你定义的方法名是adder(小写)。Java对大小写严格敏感,必须保证调用时的方法名和定义完全一致,避免拼写错误。

代码优化(可选)

methodology类中的代码可以简化,无需额外赋值变量:

package Relearn;

public class methodology {
    public static int adder(int number1, int number2) {
        return number1 + number2;
    }
}

内容的提问来源于stack exchange,提问作者HatCode03

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 03:48:12