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

如何在Main类的main方法中调用runningSum方法并获取返回结果?

解决Main类中调用runningSum方法的问题

你现在的问题是runningSum是实例方法,而main是静态方法,静态方法里没法直接调用非静态方法,给你两种可行的解决办法:

方案一:把runningSum改成静态方法

直接给runningSum加上static修饰符,让它变成静态方法,这样就能在main里直接调用了。完整代码如下:

class Main {
   
    public static void main(String[] args) {
        // 定义要传入的int数组
        int[] input = {1, 2, 3, 4};
        // 调用runningSum方法并接收结果
        int[] sumResult = runningSum(input);
        // 打印结果看效果(可选)
        for (int num : sumResult) {
            System.out.print(num + " ");
        }
    }

    // 添加static修饰符,转为静态方法
    public static int[] runningSum(int[] nums) {
        int[] result = new int[nums.length];
        result[0] = nums[0];

        for (int i = 1; i < nums.length; i++) {
            result[i] = result[i - 1] + nums[i];
        }

        return result;
    }
}

方案二:创建Main类的实例调用方法

如果不想改动runningSum的非静态属性,就在main里创建一个Main类的对象,通过这个对象来调用runningSum。完整代码如下:

class Main {
   
    public static void main(String[] args) {
        // 定义要传入的int数组
        int[] input = {1, 2, 3, 4};
        // 创建Main类的实例
        Main mainObj = new Main();
        // 通过实例调用runningSum方法并接收结果
        int[] sumResult = mainObj.runningSum(input);
        // 打印结果看效果(可选)
        for (int num : sumResult) {
            System.out.print(num + " ");
        }
    }

    public int[] runningSum(int[] nums) {
        int[] result = new int[nums.length];
        result[0] = nums[0];

        for (int i = 1; i < nums.length; i++) {
            result[i] = result[i - 1] + nums[i];
        }

        return result;
    }
}

两种方案选哪种都行:如果这个方法只是做计算、不依赖类里的其他非静态成员,选方案一更简洁;如果方法需要用到类里的实例变量,就用方案二。

内容的提问来源于stack exchange,提问作者michal.warchol98

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:05:24