如何在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
相关产品推荐
相关产品推荐

