我想创建一个可以执行以下目标的程序:
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
静态的方法或创建一个最大的对象并用它来调用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);
}
}
编辑:更改了第三行。
答案 0 :(得分:2)
您正在传递课程int[]
作为LargestElement
的参数,这是不必要的,您只需要传递变量MyArray
您还在类Largest
中调用非静态方法,而没有类Largest
的实例化对象。如果您不想创建Largest
的对象,则需要使方法LargestElement(int[] myArray)
保持静态。否则,您需要创建Largest
的对象并使用它来调用LargestElement(int[] myArray)
您可以在主要内容中执行以下操作之一:
将LargestElement设为静态:
public static int LargestElement(int[] myArray)
然后通过以下方式调用它:
largestelement = Largest.LargestElement(MyArray);
(如果它在同一个类中,你可以在开头省略类前缀)
Largest
的对象,并使用它来调用LargestElement
Largest largest = new Largest();
largestelement = largest.LargestElement(MyArray);
编辑:您还没有在方法int largest
中初始化变量LargestElement()
,因为该方法不能返回null,并且您的循环块不能保证在largest
之前给出int largest = 0
值返回它,你必须给它一个初始值,例如myMethod
作为旁注,您的命名约定对于Java是不正确的。对于方法和变量,请使用较低的驼峰案例,myVariable
,MyClass
,并且对于类名使用上骆驼案例,fr = new FileReader(file);
lnr = new LineNumberReader(fr);
while((line = lnr.readLine()) != null){
// code to split in fieldnames and values and put them in a map
if(name.equals(A)){
new ObjectFromClassA(map);
}else if(name.equals(C){
//Here is the Problem
new ObjectFromClassB(map);
}
}
答案 1 :(得分:1)
根据指定的评论,您在调用方法int []
时需要额外LargestElement
。
调用方法时,只需指定要调用方法的值。即largestelement = LargestElement(MyArray)
在声明一个方法时,您需要(如您所知)指定要允许传递给方法的类型和值。即:
public int LargestElement(int[] myArray) {