我将如何利用方法返回的值并在 java 中的主要方法中实现它?

How would I utilize a value returned from a method and implement it the main method in java?

我可以将方法中的 return 值传递给主方法,然后在另一个方法中使用该值吗?这听起来令人困惑,但让我尝试用一​​些代码更好地解释它...

    public static void main(String[] args){

        ArrayList<GeometricObject> geoList = new ArrayList<GeometricObject>();
        findPositionLargestObject(geoList);

        System.out.println("BIGGEST OBJECT AT "+ maxIndex +" AREA = 
    "+geoList.get(maxIndex).getArea());
        showObjects(geoList.get(maxIndex));
    }

    //METHOD RETRIEVING INT OF ARRAYLIST
    private static int findPositionLargestObject(
            ArrayList<GeometricObject> geoList) {

        int maxIndex = 0;
        for (int i = 1; i < geoList.size(); i++) {
            // AREA OF I COMPARES MAX INDEX
            if (geoList.get(i).getArea() > geoList.get(maxIndex).getArea()) {
                maxIndex = i;
            }
        }
        return maxIndex;
    }

    // METHOD FOR PRINTING SINGLE OBJECT OF ARRAYLIST
    private static void showObjects(GeometricObject geometricObject) {

        System.out.println(geometricObject.toString());
    }

假设我什至在主要方法中实例化了索引,例如

int maxIndex = 0;

我希望第一个方法调用到 return 值,将该值赋给变量 maxIndex,然后将该值用于 showObjects 方法。感谢您提供给像我这样的编码新手的任何见解。在main方法中实例化变量不好吗?这里的JAVAC执行背后的逻辑是什么??我的课程中涵盖的课程感觉这是一个需要填补的巨大漏洞。基本上,我如何利用一个方法 returned 的值然后实现到另一个方法?

除非我遗漏了什么,否则请分配您的函数调用的结果。我建议你编程到 List 接口。此外,如果使用 Java 7+,您可以使用菱形运算符 <> like

List<GeometricObject> geoList = new ArrayList<>(); // <-- diamond operator
// ... populate your List.
int maxIndex = findPositionLargestObject(geoList);

然后是的,您可以使用变量 maxIndex

你可以像这样在main方法中获取return值,

  int maxIndex=findPositionLargestObject(geoList);

代码:

   public static void main(String[] args){

    ArrayList<GeometricObject> geoList = new ArrayList<GeometricObject>();
   int maxIndex=findPositionLargestObject(geoList);

    System.out.println("BIGGEST OBJECT AT "+ maxIndex +" AREA = 
"+geoList.get(maxIndex).getArea());
    showObjects(geoList.get(maxIndex));
}

//METHOD RETRIEVING INT OF ARRAYLIST
private static int findPositionLargestObject(
        ArrayList<GeometricObject> geoList) {

    int maxIndex = 0;
    for (int i = 1; i < geoList.size(); i++) {
        // AREA OF I COMPARES MAX INDEX
        if (geoList.get(i).getArea() > geoList.get(maxIndex).getArea()) {
            maxIndex = i;
        }
    }
    return maxIndex;
}

// METHOD FOR PRINTING SINGLE OBJECT OF ARRAYLIST
private static void showObjects(GeometricObject geometricObject) {

    System.out.println(geometricObject.toString());
}

变量只是绑定到其类型的值的容器。如果一个方法是 return 类型,您可以将它的 return 值放在另一个代码块中的变量中。提供一个非常基本的示例,以便更容易理解其工作原理:

private String getString(int number) {
    if (number == 2) {
        return "Not One";
    }
    return "One";
}

private void printValue(String number) {
    if (number.equals("One")) {
        System.out.println("i is 1");
    } else {
        System.out.println("i is not one");
    }
}

public static void main(String[] args) {
    int i = 1;
    String testNum = getString(i);//returns "One"
    printValue(testNum);//output: i is 1
}

考虑到这个例子,

int maxIndex = findPositionLargestObject(geoList);
showObjects(geoList.get(maxIndex));

有效。