当我尝试从数组中获取输出时,总是得到以下输出:
test1.Buch@5ef4b65d
有人可以告诉我我做错了什么吗?
Buch[] buch = new Buch[30];
for(int i = 1; i < buch.length; i++) {
buch[i] = new Buch();
char reply;
Scanner in = new Scanner(System.in);
// input data into the Array
//.....
System.out.println(buch[i]);
最佳答案
您必须在类toString()
中ovveride Buch
方法。
根据Object#toString()
的文档
返回对象的字符串表示形式。通常,toString方法返回一个“以文本形式表示”此对象的字符串。
所以test1.Buch@5ef4b65d
是Buch
类的文本表示形式。
您只需在toString
类中使用ovveride Buch
方法。
为了获得所需的输出覆盖toString()
像
class Buch{
@Override
public String toString() {
StringBuilder result = new StringBuilder();
result.append(this.name );
// append other properties too.
return result.toString();
}
}
如果您只是打印
Buch
类的特定属性System.out.println(buch[i].propertyname);
要么
System.out.println(buch[i].getProeprtyName());