【发布时间】:2011-11-29 04:18:51
【问题描述】:
我是 Java 新手,我正在学习封装,并看到了一个示例,其中实例变量在类中声明为私有。
http://www.tutorialspoint.com/java/java_encapsulation.htm
我有 2 个查询:
- 为什么实例变量是私有的?为什么不公开?
- 如果将实例变量公开并直接访问会怎样?我们是否看到任何限制?
您能否举例说明如果实例变量在 Java 中的类中声明为 public 会出现什么问题?
【问题讨论】:
-
你能用一个例子解释一下如果实例变量在 Java 的类中被声明为 public 会出现什么问题吗?
-
如果一个字段永远不应该为空的图像。如果你有一个
setter方法,你可以检查null和 throw 和IllegalArgumentException如果null曾经通过。但是,如果该字段是public,那么您班级的任何用户都可以将该字段设置为任何值,包括null。然后,您的代码可能会得到NullPointerException,因为它总是希望该字段永远不会是null。 -
您发布的链接末尾有一个“封装的好处”部分,这对查看很有用。
-
他们并不总是私密的。通常是这样,但并非总是如此。