我可以将方法的返回值传递给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执行背后的逻辑是什么?在我的课程中涵盖的课程感觉这是一个需要填补的巨大漏洞。基本上,我如何利用从方法返回的值然后实现到另一个方法?
答案 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));
有效。