引言
这几天在学习单例设计模式(后面会出一期包含23种设计模式介绍的博客)的时候发现了一段代码
private static Single single;
当时我就在想,这个private和static一起用的话外界想要访问这个成员变量到底是能不能访问到呢?当时在学习Java基础的时候也没有仔细研究过这里,下面就详细的来解释一下,把这块空缺的知识点补上!
private的作用
private作为权限修饰符,用来声明当前被修饰的变量、方法为私有的,只能在类的内部直接访问或调用,是限制访问的范围的
那么提到这里就把那4种权限修饰符的访问范围在复习一下
static的作用
被static修饰的变量或方法属于类,而不是某个具体的对象,即使他是一个类变量或类方法。他们在JVM初始化的时候被加载进来,让对象在运行的时候不需要实例化就可以直接使用。
private static在外部到底能不能被访问到?
答:不能
虽然有static将这个变量变为静态变量,无需创建对象就可以通过类名访问,但前面private才是真正控制访问的范围的,private为私有,只有在类的内部才能够访问到。