java—当我尝试在main方法中执行时,总是单独收到此消息”arraystack@6acbcfc0"

3qpi33ja  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(352)

这个问题在这里已经有答案了

如何在java中使用tostring方法(13个答案)
如何打印java对象而不获取“sometype@2f92e0f4”? (10个答案)
18天前关门了。
我必须在堆栈上创建一个方法。由于某些原因,当我尝试从main方法执行时,它总是显示如下内容 ArrayStack@6acbcfc0 甚至以为我从答题纸上取了答案。怎么了?这是我为方法和主类编写的代码。
叠加方法:

public static void splitStack(ArrayStack<Integer> st1,ArrayStack<Integer> st2)
    {
        ArrayStack<Integer> st11 = new ArrayStack<Integer>();
        ArrayStack<Integer> st2rev = new ArrayStack<Integer>();
        while(!st1.isEmpty())
        {
            st11.push(st1.pop());
            if(!st1.isEmpty())
                st2rev.push(st1.pop());
        }
        while(!st11.isEmpty())
            st1.push(st11.pop());
        while(!st2rev.isEmpty())
            st2.push(st2rev.pop());

    }

主要方法:

public static void main(String[] args) {

        ArrayStack<Integer> s1 = new ArrayStack<>();
        ArrayStack<Integer> s2 = new ArrayStack<>();
        s1.push(0);
        s1.push(1);
        s1.push(3);
        s1.push(4);
        s1.splitStack(s1,s2);
        System.out.println(s2);
    }

输出:

ArrayStack@6acbcfc0

Process finished with exit code 0
nx7onnlm

nx7onnlm1#

尝试在main方法中的system.out.println()语句中使用s2.tostring()。
like-system.out.println(s2.tostring());

eit6fx6z

eit6fx6z2#

将对象传递给 System.out.println() ,它试图弄清楚如何处理它,即它要传递给方法的对象类型。如果它不能理解其他任何东西,它会使用对象的 toString() 方法(以便它可以将字符串传递给 println() ),并且您显示的输出看起来像 toString() 对于任意对象。如果你超控 toString() 在你班上,那什么时候 println() 调用它,它将执行您的代码而不是默认代码。

相关问题