Java实例可变性[重复]
-
06-07-2019 - |
题
这个问题已经有一个答案在这里:
有什么差别访问的下列变量在Java?
public class Joe {
public int a;
protected int b;
private int b;
int c;
}
我最感兴趣什么的最后一个是这样做的。
解决方案
- 公众:读/写任何人
- 保护:读/可写为 实例子类 和从内部封闭包
- 私人:读/可写为 任何 实例之类 和内或外(包围)实例
- int c:包-私人、读写的对 所有课程相同的包里面
看看 捷尔思 更多详细信息
编辑:加入该条评论保护,指出访问是授予从里面,你们完全正确的。还添加了评论对于私人。我现在记住...;-)
其他提示
对不起,回答更正一个先前的答案,但我没有足够的信誉以修改。
- 公共-读写任何人
- 受保护的-读写的对 实例子类和所有类 内部同包
- int c:包-私人的, 读/写的所有课程的内部 同的包装
- 私人-读写任何成员的这类自身及内部类(如果有的话)
这是更好地了访问剂这种方式,从最广泛的访问(公共)的最狭窄的(私人),知道当由窄到宽广,你不会失去任何可能性。
这是特别重要"保护",它常常被人误解的这类相同的包装也可以接受保护的成员的一级(不仅是它的子类).
我尽量避免包级别访问完全(最后访问你提到).
我喜欢的类自成一体。如果另一类需要访问东西在我的课,它应该是公开的(它应该通过一个方法,而不是一个属性)。否则我觉得你已经打破了 封装, 解释 抽象VS信息隐藏VS的封装.
和所有的这些都是编制时保护措施,他们可以很容易地复盖通过的反映在运行时间。
不隶属于 StackOverflow