我是Java的初学者,我有一个非常简单的问题。我试图完成一项活动而忘记了如何在主类上调用方法。
每当我尝试在主类上调用computeSum
方法时,我都会收到错误。
Error: Error: Main method not found in class array.Array, please define the main method as: public static void main(String[] args)
public class Array{
public static void main(String[] args ){
//Dont know what to put here to call computeSum
}
public int computeSum(int[] nums){
int sum = 0;
for (int i=0; i<nums.length; i++){
sum= sum+nums[i];
}
return sum;
}
}
答案 0 :(得分:2)
假设您的班级在 com.arr 包中。您可以在创建对象时指定类的限定名称。因为数组类已在 java.util 包中提供。最好将对象创建为您的Array类以及包名。
public static void main(String[] args){
com.arr.Array a1 = new com.arr.Array();
int[] numberArray = {1,7,9,0,45,2,89,47,3,-1,90,10,100};
a1.computeSum(numberArray);
}
computeSum()
这是一个实例方法。我们必须为您的类创建Object以调用实例方法。
答案 1 :(得分:1)
你可以试试这个
public class Array{
public static void main(String[] args ){
//Dont know what to put here to call computeSum
int[] nums = {1,2,3,4,5};
int sum=computeSum(nums);
System.out.println(sum);
}
public static int computeSum(int[] nums){
int sum = 0;
for (int i=0; i<nums.length; i++){
sum= sum+nums[i];
}
return sum;
}
}
答案 2 :(得分:0)
您需要创建一个实例来调用类的成员方法。
public static void main(String[] args ){
Array myArray = new Array();
int[] values = new int[] {1,2,3,4};
myArray.computeSum(values);
}
答案 3 :(得分:0)
首先,您需要了解静态类/成员和实例类/成员之间的区别。
您的main
方法是静态的 - 这是程序入口方法的标准方法 - 这意味着它可以立即使用而无需绑定到Array对象的实例。
您的computeSum
方法是一种实例方法。这意味着您需要一个对象Array
的实例来使用它,它将在该对象的上下文中执行。
您的选择:
1) 使computeSum静态:
public static void main(String[] args) {
computeSum({1,2,3}); // or Array.computeSum() outside of Array
}
public static int computeSum (int[] nums) {
int sum = 0;
for (int i=0; i<nums.length; i++){
sum= sum+nums[i];
}
return sum;
}
2) 创建Array对象的实例:
public static void main(String[] args){
Array myArray = new Array();
myArray().computeSum({1,2,3});
}
public static int computeSum (int[] nums) {
int sum = 0;
for (int i=0; i<nums.length; i++){
sum= sum+nums[i];
}
return sum;
}
静态代码 - 不是在对象实例的上下文中运行 - 不能引用非静态的成员,这是有意义的,它如何知道您引用的成员的哪个对象实例(myArray1.computeSum()
?或myArray2.computeSum()
?它甚至不知道myArray对象的这两个实例存在。)
希望这会有所帮助。 :)
答案 4 :(得分:0)
您可以阅读有关实例方法和静态方法的信息。
computeSum()
是一个实例方法,这意味着它需要调用一个Class Array对象,例如:
public static void main(String[] args){
Array array = new Array();
int[] nums = {1,2,3};
array.computeSum(nums);
}
或者,你可以使它成为一个静态的方法来使用它而不用一个对象,这是不推荐的,但是你想要的,这就是你可以这样做的方法:
public class Array{
public static void main(String[] args ){
int[] nums = {1,2,3};
int sum = computeSum(nums);
}
public static int computeSum(int[] nums){
int sum = 0;
for (int i=0; i<nums.length; i++){
sum= sum+nums[i];
}
return sum;
}
}
答案 5 :(得分:0)
或者您可以仅使用反射进行更改;)
答案 6 :(得分:0)
首先,你的方法有一个属性是&#34; int [] nums&#34;调用您需要为属性设置值的方法。
请注意,在调用时,您不必为属性指定相同的名称。
例如:1 - int[] Myattribute = {1,2,3};
int sum = computeSum(Myattribute );
把这条线包含在你的主要工作中