第一个问题: 类中的属性为什么设置为private的:
主要是第二点吧 如果我getXXX里面对属性直接进行了操作或者加密,其他类调用的时候是看不懂的。起到一个封装的作用。
(1)由于很多框架都是调用这两个方法来实现沟通,这是一种习惯了。
(2)get/set方法也不一定只是简单的作一个赋值,或一个返回值吧,在这里可以作一些权限的控制,比如不是每个角色都可以赋值的。再比如返回的值不一定是值本身,可以是经过处理了的,比如加密,这用public定义是不能作到的。
(2)get/set方法也不一定只是简单的作一个赋值,或一个返回值吧,在这里可以作一些权限的控制,比如不是每个角色都可以赋值的。再比如返回的值不一定是值本身,可以是经过处理了的,比如加密,这用public定义是不能作到的。
第二个问题:单例模式的构造方法为什么私有
很多地方说是为了防止new多个对象这个说法本身是错误的 ,构造方法设置为私有 可以在当前类中new多个对象啊
查阅资料发现是因为 private以后 每次new对象的时候都要调用构造方法 而private的权限是当前类 那么其他类new对象的时候一定会失败
第三个问题 引用为什么设置为private static 不加static可以吗
static 必须有 因为单例模式的方法是static 调用的属性必须是静态属性 如果不是静态属性 会发生指令重排序 导致先调用方法后加载属性 ,加载不到属性就会报错,同时static本质上是为了全局唯一,
设置成private是考虑封装性,防止在外部类中进行初始化 也就不是单例了
版权声明:本文为zcw4237256原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。