2016-04-05 50 views
0

有//告诉我需要帮助。所以我采取了用户输入,现在我试图用另一种方法打印输入。我的数组的内容必须打印出来。对象和类。如何使用for循环打印用户输入?

import java.util.Scanner; 

public class Running_Calcs { 

public static void main(String[] args) { 
    Scanner kbd = new Scanner(System.in); 

    final int MAX_RUNNERS = 4; 
    banner(); 
    Runner[] ar = new Runner[MAX_RUNNERS]; 
// This is an array for user input. Getter and setter are already set for name,distance,time. 
    for (int i = 0; i < ar.length; i++) { 
     System.out.println("\nInformation for runner 1/3"); 
     System.out.print("Name: "); 
     String name = kbd.next(); 
     System.out.print("Miles: "); 
     double distance = kbd.nextDouble(); 
     System.out.print("Minutes: "); 
     int time = kbd.nextInt(); 
    } 

    kbd.close(); 
} 

public static void printRunners(Runner[] ar) { 
    for (int i = 0; i < ar.length; i++) { 
     System.out.println("First Print of runners"); 
     System.out.println("-----------------------"); 
     System.out.println(ar[i]); 
    } 
    banner(); 

} 
// I am trying to print the info from the array in this method. I don't know how. 
//Along with that , I am trying to print the pace and Temp which I already have in my other class. 
private static void banner() { 
    System.out.println("---------------------------"); 
    System.out.println("Track runner info and pace\nGustavo Bruno"); 
    System.out.println("---------------------------"); 
} 

} 
+0

如果你有getters和setter,你为什么不使用它们? –

+0

我必须在PrintRunners方法中调用它们吗? –

+0

您必须在循环的每次迭代中实例化一个新的runner,使用您拥有的setter方法设置其属性,并将该实例存储在数组中。在printRunners方法中,你必须为每个跑步者调用相应的getter方法。 – RubioRic

回答

0

我建议重写类转轮

ToString方法并调用它在该方法中printRunners

public static void printRunners(Runner[] ar) { 
    for (int i = 0; i < ar.length; i++) { 
     System.out.println("First Print of runners"); 
     System.out.println("-----------------------"); 
     System.out.println(ar[i].toString()); //here!!! 
    } 
    banner(); 

} 
+0

它在我的第一个for循环结束后停止打印信息;在它到达printsRunners方法之前。 –

+0

有什么错误?在问题中发布该信息 –

0

主要()方法定义内的名为“AR”可变方法。该值不能在方法外访问。为了访问它,你需要将其申报为类的静态变量:

private static Runner[] ar; 

当打印了这一点,你需要遍历它:

for(Runner r : ar){ 
    // somehow print out the Runner class (you haven't included this) 
    System.out(r.getName() + "\t" + r.getDistance() + "\t" + r.getTime(); 
} 

如果你的亚军现在

,您遇到的另一个问题是没有调用printRunners()方法。我假设你想在main()方法的结尾调用它?