为什么没有整数输出

时间:2015-08-24 20:51:02

标签: java netbeans

有谁知道为什么我没有得到实际的整数...我得到WorkOut @ 1261281792。我知道这是小事,但无法弄清楚。这是我的3个班级:

public class WorkOut1 {

    public static void main(String [] args) {      

        Exercise tuesWorkout = new Exercise (10, 50);

        PullUps tuesPullUps = new PullUps (10, 50);

        System.out.println("This Tuesday our workout will consist of this many minutes and reps:");
        System.out.println(tuesWorkout);
    }
} 

PullUps Class

public class PullUps extends Exercise {

    private static int barHeight;

    public PullUps (int min, int reps) {
        super(min, reps);
        barHeight = 6;
    }
}

练习课

public class Exercise {

    private static int min;
    private static int reps;

    //Constructor
    public Exercise(int min,int reps) {
        this.min = min;
        this.reps = reps;
    }// end constructor

    public static int howManyMin() {
        return min;
    }//end method howmanyMin()

     public static int howManyReps() {
        return reps;
    }//end method howmanyReps()

}//end class

2 个答案:

答案 0 :(得分:4)

当你调用一个要打印的对象时,会调用该对象的toString()方法,在这种情况下,它将从Object类继承(这是一个所有类继承自的Java类),因为你还没有在Exercise类中定义了一个toString()方法。因此,您将获得对象名称+对象的哈希表示。一个修复方法是在要打印的对象(在本例中为Exercise)中创建一个toString方法,该方法返回您想要打印的字符串。

public String toString() {
    return(min + ", " + reps);
}

另一个选项是打印要在主类中打印的属性的访问者函数的结果。

System.out.println(tuesWorkout.howManyMin() + ", " + tuesWorkout.howManyReps());

答案 1 :(得分:2)

您不想打印实际的tuesWorkout对象本身。

您想要这样做:

System.out.println(tuesWorkout.howManyReps());

它为您提供了代表的数量。

然后,您必须致电getter min来了解锻炼的min次。

只需调用System.out.println(tuesWorkout)就像打印实际的Object本身一样,这对我们没有任何意义。