我正在尝试创建一个函数sum
,然后在main
中调用它,但是我遇到了编译时错误,我不明白为什么这是错误的。
class FindSum {
int sum(int[] arr) {
int sum = 0; // O(1)
for (int i = 0; i < arr.length; i++) { // n times
sum += arr[i]; // O(1)
}
return sum; // O(1)
}
// Driver program to test above functions
public static void main(String[] args) {
int arr[] = new int[]{5, 5, 10, 100, 10, 5};
System.out.println(sum(arr));
}
}
答案 0 :(得分:2)
您正在从静态方法调用非静态方法。您可以将sum更改为静态,如下所示:
public static int sum(int[] arr) {
或在main函数中实例化一个新对象:
public int sum(int[] arr) {
int sum = 0; // O(1)
for (int i = 0; i < arr.length; i++) { // n times
sum += arr[i]; // O(1)
}
return sum; // O(1)
}
// Driver program to test above functions
public static void main(String[] args) {
int arr[] = new int[]{5, 5, 10, 100, 10, 5};
FindSum instance = new FindSum();
System.out.println(instance.sum(arr));
}
答案 1 :(得分:1)
方法sum
必须是静态的才能在main方法中调用。