我参加过工作面试.面试官问我为什么需要私有变量.如果您通过定义一个变量private来实现某些功能,那么您是否可以通过定义任何其他访问修饰符来实现相同的定义?
According to Java Specification Languages, A private class member or constructor is accessible only within the body of the top level class (7.6) that encloses the declaration of the member or constructor. It is not inherited by subclasses.
但是,如果我正在设计一个类,我如何决定定义一个变量“私人”?
通过限制“其他代码”的访问(可能由他人编写/维护),您可以随时更改它,而无需担心破坏依赖于其他代码的代码.
这个问题不是“我该不该私下吗”,而是“这是非私人需要吗?”.有没有其他可能需要访问变量的代码?
如果事实证明是这样,您可以分配正确的访问(可能通过getter / setter)并接受对其的更改将是困难的.否则你离开它私人.
http://stackoverflow.com/questions/4266677/how-do-you-take-decision-to-define-a-variable-private