您好StackOverflow社区,
我遇到一些涉及将元素添加到数组中的输出问题。
我已经在课堂上创建了一个程序,并且该程序可以正常运行,但是当我在自己的计算机上运行相同的程序/代码时,会得到以下输出(有时会生成不同的数字/错误):
“玩具:
toysdemo.ToysDemo @ 15f5897toysdemo.ToysDemo @ b162d5“
为了更加清楚,下面是代码:
package toysdemo;
public class ToysDemo {
private float price;
private String name;
public float getPrice(){
return price;
}
public void setPrice(float newPrice){
price = newPrice;
}
public String getName() {
return name;
}
public void setName(String newName) {
name = newName;
}
public static void printToys(ToysDemo arrayOfToys[], int size) {
//display content of array
System.out.println("The toys: ");
for (int i = 0; i < size; i++) {
System.out.print(arrayOfToys[i]);
}
System.out.println();
}//print toys
public static void main(String[] args) {
ToysDemo arrayOfToys[] = new ToysDemo[5];
int numberOfToys = 0;
// create two toys and save into array
ToysDemo toy = new ToysDemo();
toy.setPrice((float)111.99);
toy.setName("Giant Squid");
arrayOfToys[numberOfToys++] = toy;
ToysDemo toy2 = new ToysDemo();
toy2.setPrice((float)21.99);
toy2.setName("small Squid");
arrayOfToys[numberOfToys++] = toy2;
//print toys into array
printToys(arrayOfToys, numberOfToys); //the call
}
}
这是一个真正简单的程序,但是令人沮丧的是如何不会显示正确的输出。
如果有人能帮助我解决这个难题,我将不胜感激。
谢谢
最佳答案
实际上,您正在打印ToysDemo
对象的引用。为了使System.out.println(arrayOfToys[i])
工作,您的ToysDemo
类需要重写toString
方法。
样例代码:
public class ToysDemo {
//class content...
@Override
public String toString() {
return "My name is: " + name + " and my price is: " + String.format("%.2f", price);
}
}