我如何利用从方法返回的值并将其实现为java中的main方法?

时间:2015-02-24 04:14:38

标签: java methods return-value

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

    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;

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

3 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

你可以在main方法中获得这样的返回值,

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

答案 2 :(得分:0)

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

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

有效。