黑马程序员技术交流社区

标题: 单例设计模式出现如下问题,返回值应该为int型显示出ss=Single@59ec59df [打印本页]

作者: 18234133910    时间: 2015-3-24 22:33
标题: 单例设计模式出现如下问题,返回值应该为int型显示出ss=Single@59ec59df
代码如下:class Single
{
        private int num;
        public void setNum(int num)
        {
                this.num=num;
        }
        public int getNum()
        {
                return num;
        }
        private Single(){}
        private static Single s =new Single();
        public static Single getInstence()
        {
                return s;
        }
}
public class SingleDemo
{

        public static void main(String[] args)
        {
               
                Single ss=Single.getInstence();
                ss.setNum(40);
                System.out.println("ss="+ss);

        }
}
是哪里出现了问题? 请说明一下··
作者: dxf578939729    时间: 2015-3-25 10:09
输出出问题了,输出要是ss.getNum(),输出的结果就是整形的了,你输出的是ss那个对象,不是那个对象的num的值
作者: natsu647    时间: 2015-3-25 11:36
输出错了,感受下两个输出的结果就行了

class Demo
{
    static int x = 5 ;
}

public class Test
{
    public static void main(String[] args)
    {
        Demo s = new Demo();
        System.out.println(s);   //这里输出的是s对象的内存地址
        System.out.println(s.x);  //这里输出的是s的静态变量x
    }
}
作者: bankmycard    时间: 2015-3-25 23:04
回复一个,不懂
作者: 18234133910    时间: 2015-3-26 21:15
dxf578939729 发表于 2015-3-25 10:09
输出出问题了,输出要是ss.getNum(),输出的结果就是整形的了,你输出的是ss那个对象,不是那个对象的num的 ...

恩 已解决··
作者: 18234133910    时间: 2015-3-26 21:17
natsu647 发表于 2015-3-25 11:36
输出错了,感受下两个输出的结果就行了

class Demo

恩 我直接输入ss.getNum();就可以了
作者: 快乐ABC    时间: 2015-3-26 23:48
输出getNum方法或者覆盖类中的toString方法。默认的Object类中的toString方法,是类名@Integer.toHexString(hasCode());输出就是你的这个样子的值
作者: lwj123    时间: 2015-3-27 11:41
你输出的就是ss对象啊,默认下没有打印的是toString()的结果的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2