« 上一篇下一篇 »

Private的使用权限

Private关键词的意思是,除非是用这个类(包括这个成员的类)的方法,否则一律不得访问。同一个package里的其它类也不能访问private成员,所以这就有点像是在作茧自缚。但是另一方面,一个package很可能是由好几个人合作开发的,因此private能让你根据自己的需要修改那些成员,而不用担心这么做会不会对别的类产生影响。

默认的package权限通常已经提供了一中较为合适的隐藏效果;记住,从客户程序员的角度来看,package权限的成员也是不能访问的。这样正好,因为默认的权限就是你经常要用的那个(而且还是你忘了设置的时候会用那个的)。于是通常情况下,你只要把那些要对客户程序员开发的成员设成public就行了。结论是,可以先不考虑大量地使用private,因为即使不用,也还过得去。(这点同C++是截然不同。)但是,始终如一地使用private还是很重要的,特别是遇到多线程的时候。

只有一个方法,当你把它做成private的时候可以一点心思都不担,这就是类helper方法。这样就能保证,你不会一不小心就把这个方法用到package的其它地方,从而造成你自己都不能修改或删除的尴尬了。方法设成private之后,这项权利就被保留下来了。对类的private数据来说,情况也一样。除非你必须开放类的底层实现,否则就应该将所有的数据都设成private的。但是这并不是在说,只要类里有了一个某个对象的private的reference,那么其它对象就 不能有这个对象的public的reference了。

« 上一篇下一篇 »