我想创建一个可以实现以下目标的程序:
1.在main
方法内:
1.1声明一个由五个元素组成的整数数组,并用介于1到100之间的五个随机整数填充它。
1.2创建Largest
类的对象。
1.3通过调用LargestElement(int[] MyArray)
方法在步骤1.1中传递数组。
1.4打印LargestElement(int[] MyArray)
的返回值
2.在LargestElement(int[] MyArray)
方法内部:
2.1找到数组中最大的元素。
2.2返回元素。
以下是到目前为止我编写的代码。
public class Largest {
public int LargestElement(int[] myArray) {
int largest;
for(int i = 0; i < myArray.length; i++)
if (myArray[i] > largest) {
largest = myArray[i];
}
return largest;
}
public static void main (String[] args) {
int[] MyArray = new int[] {1, 2, 3, 4, 5};
int largestelement = 0;
largestelement = LargestElement(int[] MyArray);
System.out.println (largestelement);
}
}
我唯一注意到的问题是
largestelement = LargestElement(int MyArray);
不断告诉我.class is expected.
我是否应该声明其他内容?另外,这就是说我需要在该行上再加上一个分号,但我真的不知道该如何处理。编辑:所以有人告诉我,我有两个选择:使我正在调用
LargestElement
的方法静态或创建一个Largest对象并使用它来调用LargestElement().
我宁愿创建一个对象。据我了解,我只需要编辑代码即可
public class Largest {
public int LargestElement(int[] myArray) {
int largest = 0;
for(int i = 0; i < myArray.length; i++)
if (myArray[i] > largest) {
largest = myArray[i];
}
return largest;
}
public static void main (String[] args) {
Largest largest = new Largest();
int[] MyArray = new int[] {1, 2, 3, 4, 5};
int largestelement = 0;
largestelement = largest.LargestElement(MyArray);
System.out.println (largestelement);
}
}
编辑:更改第三行。
最佳答案
您将类int[]
作为参数传递给LargestElement
,这是不必要的,您只需要传递变量MyArray
您还从类Largest
调用了非静态方法,而没有类Largest
的实例化对象。如果不想创建Largest
对象,则需要将方法LargestElement(int[] myArray)
设为静态。否则,您将需要创建一个Largest
对象并使用它来调用LargestElement(int[] myArray)
您可以在主体中执行以下操作之一:
使LargestElement静态:public static int LargestElement(int[] myArray)
然后通过以下方式调用:largestelement = Largest.LargestElement(MyArray);
(如果在同一类中,则可以在开头省略类前缀)
在main中创建一个Largest
对象,并使用它来调用LargestElement
Largest largest = new Largest();
largestelement = largest.LargestElement(MyArray);
编辑:您还没有在方法int largest
中初始化变量LargestElement()
,因为该方法不能返回null并且不能保证循环块在返回前给largest
一个值,所以必须给它一个初始值值,例如int largest = 0
附带说明一下,您的命名约定对Java不正确。对于方法和变量,请使用小写的驼峰字母,即myMethod
,myVariable
;对于类名,请使用大写的驼峰字母,即MyClass