这个问题已经有一个答案在这里:

有什么差别访问的下列变量在Java?

public class Joe {
    public int a;
    protected int b;
    private int b;
    int c;
}

我最感兴趣什么的最后一个是这样做的。

有帮助吗?

解决方案

  • 公众:读/写任何人
  • 保护:读/可写为 实例子类 和从内部封闭包
  • 私人:读/可写为 任何 实例之类 和内或外(包围)实例
  • int c:包-私人、读写的对 所有课程相同的包里面

看看 捷尔思 更多详细信息

编辑:加入该条评论保护,指出访问是授予从里面,你们完全正确的。还添加了评论对于私人。我现在记住...;-)

其他提示

对不起,回答更正一个先前的答案,但我没有足够的信誉以修改。

  • 公共-读写任何人
  • 受保护的-读写的对 实例子类和所有类 内部同包
  • int c:包-私人的, 读/写的所有课程的内部 同的包装
  • 私人-读写任何成员的这类自身及内部类(如果有的话)

这是更好地了访问剂这种方式,从最广泛的访问(公共)的最狭窄的(私人),知道当由窄到宽广,你不会失去任何可能性。

这是特别重要"保护",它常常被人误解的这类相同的包装也可以接受保护的成员的一级(不仅是它的子类).

我尽量避免包级别访问完全(最后访问你提到).

我喜欢的类自成一体。如果另一类需要访问东西在我的课,它应该是公开的(它应该通过一个方法,而不是一个属性)。否则我觉得你已经打破了 封装, 解释 抽象VS信息隐藏VS的封装.

和所有的这些都是编制时保护措施,他们可以很容易地复盖通过的反映在运行时间。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top