黑马程序员技术交流社区

标题: private 问题 [打印本页]

作者: 陈林阳    时间: 2011-11-16 22:17
标题: private 问题
public class NumberManager {
        private int lastNumber = 1;
        private List<Integer> queueNumbers = new ArrayList<Integer> ();
       
        public synchronized Integer generateNewNumber(){
                queueNumbers.add(++lastNumber);
                return lastNumber;
        }
private List<Integer> queueNumbers = new ArrayList<Integer> (); 这里是通过queueNumbers指向new生成的一个对象。为什么要私有
作者: 宋文轩    时间: 2011-11-16 22:22
有点类似单例设计模式吧,这里只想建立一个list集合对象。
作者: 任俊杰    时间: 2011-11-16 22:45
私有就是不想让基它的类访问,只充许该类自己访问。
作者: 任俊杰    时间: 2011-11-16 22:49
只有设置为private后才能保证该属性的安全性,这样其他用户使用该类时就不能直接操作该属性。使得程序不容易出错。
作者: 任俊杰    时间: 2011-11-16 23:02
如果是public 或者缺省的或者保护的,其他用户都可以通过某种方法去直接操作该属性(公有的直接使用,缺省的只要跟它一个包就可以直接操作,保护的只要继承它就可以直接操作它),如果这个属性只属于本类自身,而且不允许外界直接访问,那么就要设置私有的,这样就能保护它,这样也能很好的掩藏它,使得该类的具体细节对使用者透明。使用者在使用的时候,只看得到该类对外公开的方法或属性,如果该属性设置为其它权限,那么用户使用的时候,就能看见它对外开放它,这样也就可能给使用者带来误导,如果使用者对其直接操作(而程序的需求是不允许的)那么就很有可能会导致程序出错。。


最简单的例子:如果是对外公开的,其它程序员在使用eclipse自动提示的时候,他就看得见这个属性,他就可能对这个好奇,就可能想去了解这个属性是干嘛的,而这个本来他本就不应该去了解的,就导致他多花了时间。这样就误导了其他使用者。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2