有谁知道为什么我没有得到实际的整数...我得到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
答案 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本身一样,这对我们没有任何意义。