尝试返回值时出现两个错误

时间:2015-12-07 22:01:55

标签: java arrays

我想创建一个可以执行以下目标的程序:

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);
    }
}

编辑:更改了第三行。

2 个答案:

答案 0 :(得分:2)

您正在传递课程int[]作为LargestElement的参数,这是不必要的,您只需要传递变量MyArray

您还在类Largest中调用非静态方法,而没有类Largest的实例化对象。如果您不想创建Largest的对象,则需要使方法LargestElement(int[] myArray)保持静态。否则,您需要创建Largest的对象并使用它来调用LargestElement(int[] myArray)

您可以在主要内容中执行以下操作之一:

  1. 将LargestElement设为静态:

    public static int LargestElement(int[] myArray)

  2. 然后通过以下方式调用它:

    largestelement = Largest.LargestElement(MyArray);

    (如果它在同一个类中,你可以在开头省略类前缀)

    1. 在main中创建Largest的对象,并使用它来调用LargestElement
    2. Largest largest = new Largest();

      largestelement = largest.LargestElement(MyArray);

      编辑:您还没有在方法int largest中初始化变量LargestElement(),因为该方法不能返回null,并且您的循环块不能保证在largest之前给出int largest = 0值返回它,你必须给它一个初始值,例如myMethod

      作为旁注,您的命名约定对于Java是不正确的。对于方法和变量,请使用较低的驼峰案例,myVariableMyClass,并且对于类名使用上骆驼案例,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) {