【问题标题】:Objects and classes. How to print user input using a for loop?对象和类。如何使用 for 循环打印用户输入?
【发布时间】:2016-04-05 17:22:28
【问题描述】:

有 // 告诉我需要什么帮助。所以我接受了用户输入,现在我正在尝试使用另一种方法打印输入。我的数组的内容必须被打印出来。

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

}

【问题讨论】:

  • 如果你有getter和setter,为什么不使用它们呢?
  • 我必须在 PrintRunners 方法中调用它们?
  • 您必须在循环的每次迭代中实例化一个新的跑步者,使用您拥有的那些 setter 方法设置他的属性并将该实例存储在数组中。在 printRunners 方法中,您必须为每个跑步者调用相应的 getter 方法。

标签: java class object methods


【解决方案1】:

我建议重写 Runner 类的 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();

}

【讨论】:

  • 在我的第一个 for 循环结束后停止打印信息;在它到达 printsRunners 方法之前。
【解决方案2】:

main() 方法在方法中定义了一个名为“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() 方法结束时调用它?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多