Java 字符串输出:类@#
假设我有三门课: A类:Java 字符串输出:类@#,java,string,output,memory-address,Java,String,Output,Memory Address,假设我有三门课: A类: public class A { private String s; public A() { s = "blah"; } public void print() { System.out.println(s); } } B类: public class B{ private A a[]; public B(){ a = new A[100]; for (int i=0; i<100;i++) {
public class A {
private String s;
public A() {
s = "blah";
}
public void print() {
System.out.println(s);
}
}
B类:
public class B{
private A a[];
public B(){
a = new A[100];
for (int i=0; i<100;i++) {
a[i] = new A();
}
}
public void print() {
for (int i=0; i<100; i++) {
a.print(); //SHOULD BE a[i].print();
}
}
}
为什么我会得到像
B@#
这样的输出模式,其中#
是一个数字。我认为这与间接寻址有关,但我不太确定。为什么它不打印出100个s
?您打印的是数组而不是数组中的对象。因此,它正在打印对象的地址(编号)和它所属的对象
我想你应该在B.print()中调用每个print。您还缺少i的增量,这意味着它将无限循环
for(int i = 0; i < 100; ++i)
{
a[i].print();
}
for(int i=0;i<100;++i)
{
a[i].print();
}
尝试显示您的输出“我的程序”中的输出为B@1172e08
for(int i = 0; i < 100; ++i)
{
a[i].print();
}