Java 为什么我不能使用';tostring'?如何打印包含类的arry?

Java 为什么我不能使用';tostring'?如何打印包含类的arry?,java,tostring,Java,Tostring,公共字符串toString(){//这在另一个类中 String Cubes = "+"; for(int i = 0; i < CubesStack.length;) { Cubes = Cubes + CubesStack[i].toString(); } return "maxCubes = " + this.maxCubes + "\n" + "currentCubes = " + this.curren

公共字符串toString(){//这在另一个类中

    String Cubes = "+";

    for(int i = 0; i < CubesStack.length;) {
        Cubes = Cubes + CubesStack[i].toString();
    }

    return "maxCubes = " + this.maxCubes + "\n" +

            "currentCubes = " + this.currentCubes + "\n" + 

            "CubesStack = " + Cubes; 

}
}


为什么我不能使用“tostring”打印?如何打印包含类的arry?多谢各位

您的对象应该实现toString()方法,否则它将采用java.lang.object中toString()的默认实现

对象的默认实现是

公共字符串toString(){
返回getClass().getName()+“@”+Integer.toHexString(hashCode());
}
因此,您必须重写toString()以获得自己的值

例如: 这里我有Name类,它将有两个属性

类名{
私有字符串名;
私有字符串lastName;
公共名称(字符串名、字符串名){
超级();
this.firstName=firstName;
this.lastName=lastName;
}
@凌驾
公共字符串toString(){
返回“Name[firstName=“+firstName+”,lastName=“+lastName+””;
}
}
publicstaticvoidmain(字符串[]args){
姓名[]姓名=新姓名[]{新姓名(“约翰”、“doe”)、新姓名(“约翰”、“doe1”)};
System.out.println(名称[0]);
}
如果不重写toString(),则输出:com.stackovflow.problems。Name@33909752

在为您的对象实现toString()输出后:Name[firstName=john,lastName=doe]

为您的对象实现
toString()
。可能重复
public static void main(String[] args) {
    // TODO Auto-generated method stub
    cubesTower tower1 = new cubesTower(20);
    System.out.println(tower1.toString());
}