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

[复制链接]
查看11 | 回复6 | 2021-1-27 06:32:09 | 显示全部楼层 |阅读模式
classcat{
staticfinalcata=newcat();
privatecat(){
}
//publicstatictext1c(){
//returna;
//}
}
就是如果修饰词不是privatestatic而是staticfinal的话好像也指创建了一个对象啊。。。就可以直接调用了,下面的方法就没有意义了。。为什么不能这样写啊。。
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:32:09 | 显示全部楼层






回复

使用道具 举报

千问 | 2021-1-27 06:32:09 | 显示全部楼层
单例私有化构造方法啊你这样还是可以到处new对象
回复

使用道具 举报

千问 | 2021-1-27 06:32:09 | 显示全部楼层
这样你怎么获取这个唯一对象啊


回复

使用道具 举报

千问 | 2021-1-27 06:32:09 | 显示全部楼层


看漏了好像是可以的
回复

使用道具 举报

千问 | 2021-1-27 06:32:09 | 显示全部楼层

首先要清楚final关键字的含义:在Java中声明类、属性和方法时,可使用关键字final来修饰,表示“最终”。
final标记的类不能被继承。提高安全性,提高程序的可读性。
String类、System类、StringBuffer类
final标记的方法不能被子类重写。
Object类中的getClass()。
final标记的变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次。
final标记的成员变量必须在声明的同时或在每个构造方法中或代码块中显式赋值,然后才能使用。
finaldoublePI=3.14;
所谓“单例模式”指的是一个类只能创建一个对象,也就是在类外不能通过newSingleton();创建类的对象,而是通过方法调用类的对象。
而staticfinal修饰的类,说明此类是静态类,不能被继承,但在类外可以通过newSingleton();创建类的对象。
上述代码虽然在类的外部能创建对象,但已经不是单例模式

回复

使用道具 举报

千问 | 2021-1-27 06:32:09 | 显示全部楼层
5楼正解学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行