Java控制台显示对象的地址而不是实际值

use*_*803 0 java arrays object

好的,我有一个简单的数组,我正在使用Java.问题是,当我运行程序时,我得到对象的地址而不是实际值.我也看到循环/数组有问题.它应显示房屋3,5和7,但底部显示3,4和5.我在哪里出错了?请参阅下面的代码和控制台输出.提前致谢!

House[] houses = new House[3];

houses[0] = new House(3,4);
houses[1] = new House(5,7);
houses[2] = new House(7,2);

System.out.println("Number of bottles in house number 3 is: " + houses[0]);
System.out.println("Number of bottles in house number 5 is: " + houses[1]);
System.out.println("Number of bottles in house number 7 is: " + houses[2]);

for (int i = 0; i < houses.length; i++){
  System.out.println("Number of bottles in house " + (i + 3 ) + " is " + houses[i]);
}
Run Code Online (Sandbox Code Playgroud)

控制台输出:

3号门的瓶数是:org.com1027.lab3.House@d16e5d6

5号门的瓶数是:org.com1027.lab3.House@5a4b4b50

7号门的瓶数是:org.com1027.lab3.House@53d9f80

3号房子的瓶子数是org.com1027.lab3.House@d16e5d6

4号房子的瓶子是org.com1027.lab3.House@5a4b4b50

5号房子的瓶子数是org.com1027.lab3.House@53d9f80

Dam*_*ash 5

Java没有任何神奇地知道如何以字符串格式表示类的机制.这就是你必须自己实现它的原因.

您需要覆盖toString()方法以获得"corect"值

class House {
 //your code

 @Override 
 public String toString() {
   return "The string representation";
 }

}
Run Code Online (Sandbox Code Playgroud)