A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

代码如下: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);

        }
}
是哪里出现了问题? 请说明一下··

7 个回复

倒序浏览
输出出问题了,输出要是ss.getNum(),输出的结果就是整形的了,你输出的是ss那个对象,不是那个对象的num的值
回复 使用道具 举报
输出错了,感受下两个输出的结果就行了

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
    }
}
回复 使用道具 举报
回复一个,不懂
回复 使用道具 举报
dxf578939729 发表于 2015-3-25 10:09
输出出问题了,输出要是ss.getNum(),输出的结果就是整形的了,你输出的是ss那个对象,不是那个对象的num的 ...

恩 已解决··
回复 使用道具 举报
natsu647 发表于 2015-3-25 11:36
输出错了,感受下两个输出的结果就行了

class Demo

恩 我直接输入ss.getNum();就可以了
回复 使用道具 举报
输出getNum方法或者覆盖类中的toString方法。默认的Object类中的toString方法,是类名@Integer.toHexString(hasCode());输出就是你的这个样子的值

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报
lwj123 金牌黑马 2015-3-27 11:41:05
8#
你输出的就是ss对象啊,默认下没有打印的是toString()的结果的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马