A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈林阳 黑马帝   /  2011-11-16 22:17  /  1620 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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生成的一个对象。为什么要私有

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

4 个回复

倒序浏览
有点类似单例设计模式吧,这里只想建立一个list集合对象。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
私有就是不想让基它的类访问,只充许该类自己访问。
回复 使用道具 举报
只有设置为private后才能保证该属性的安全性,这样其他用户使用该类时就不能直接操作该属性。使得程序不容易出错。
回复 使用道具 举报
如果是public 或者缺省的或者保护的,其他用户都可以通过某种方法去直接操作该属性(公有的直接使用,缺省的只要跟它一个包就可以直接操作,保护的只要继承它就可以直接操作它),如果这个属性只属于本类自身,而且不允许外界直接访问,那么就要设置私有的,这样就能保护它,这样也能很好的掩藏它,使得该类的具体细节对使用者透明。使用者在使用的时候,只看得到该类对外公开的方法或属性,如果该属性设置为其它权限,那么用户使用的时候,就能看见它对外开放它,这样也就可能给使用者带来误导,如果使用者对其直接操作(而程序的需求是不允许的)那么就很有可能会导致程序出错。。


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

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马