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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 紫幻随影-缪 中级黑马   /  2014-6-5 11:24  /  966 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我用老师的方法写单例不会报错,如下:
  1. class Single{
  2.                
  3.         private Single(){}  //将构造函数私有化
  4.         private static Single single=new Single(); //在类中创建一个本类对象

  5.         public static Single getInstance(){ // 提供一个方法可以获取到该对象的方法
  6.        
  7.                 return single;
  8.         }
  9. }
复制代码

但是如果把
private static Single single=new Single();
写成
private static Single single;      //这行会报错误,这是啥原因呢??
single=new Single();




评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1 很给力!

查看全部评分

4 个回复

倒序浏览
single=new Single();
这是一个赋值语句

赋值语句要出现在方法内
不能直接出现在类中

所以报错

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1 很给力!

查看全部评分

回复 使用道具 举报
李小然 发表于 2014-6-5 11:52
single=new Single();
这是一个赋值语句

那一种在声明变量时就赋值不是也属于赋值语句?
回复 使用道具 举报
紫幻随影-缪 发表于 2014-6-5 12:26
那一种在声明变量时就赋值不是也属于赋值语句?

声明时赋值,属于显示初始化
是初始化中的一种
不属于赋值语句
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马