我想创建一个可以实现以下目标的程序:

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不正确。对于方法和变量,请使用小写的驼峰字母,即myMethodmyVariable;对于类名,请使用大写的驼峰字母,即MyClass

07-26 06:18