java单例模式成员变量修饰词用static final问题在哪。。

不理朝夕 2017-11-09 11:57:21
class cat{
static final cat a=new cat();
private cat() {
}
// public static text1 c() {
// return a;
// }
}

就是如果修饰词不是private static 而是 static final 的话好像也指创建了一个对象啊。。。就可以直接调用了,下面的方法就没有意义了。。为什么不能这样写啊。。
...全文
354 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
李德胜1995 2017-11-09
  • 打赏
  • 举报
回复
ZL_LSY 2017-11-09
  • 打赏
  • 举报
回复
5楼正解 学习了
昨夜的雨 2017-11-09
  • 打赏
  • 举报
回复
首先要清楚 final 关键字的含义:在Java中声明类、属性和方法时,可使用关键字final来修饰,表示“最终”。 final标记的类不能被继承。提高安全性,提高程序的可读性。 String类、System类、StringBuffer类 final标记的方法不能被子类重写。 Object类中的getClass()。 final标记的变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次。 final标记的成员变量必须在声明的同时或在每个构造方法中或代码块中显式赋值,然后才能使用。 final double PI=3.14; 所谓“单例模式”指的是一个类只能创建一个对象,也就是在类外不能通过 new Singleton();创建类的对象,而是通过方法调用类的对象。 而static final修饰的类,说明此类是静态类,不能被继承,但在类外可以通过new Singleton();创建类的对象。 上述代码虽然在类的外部能创建对象,但已经不是单例模式
小刀雨斑 2017-11-09
  • 打赏
  • 举报
回复
看漏了 好像是可以的
mmqw 2017-11-09
  • 打赏
  • 举报
回复
这样你怎么获取这个唯一对象啊
小刀雨斑 2017-11-09
  • 打赏
  • 举报
回复
单例 私有化构造方法啊 你这样还是可以到处new对象

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧