Tag: 信息隐藏

子类是否从超类inheritance私有实例变量

子类是否inheritance私有字段? 这个问题解决了同样的问题,但我不太明白这是如何满足下面(看似)相互矛盾的情况。 http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html 说“子类不inheritance其父类的私有成员”。 这意味着它既不inheritance私有实例变量也不inheritance私有方法? 但是,如果从父级inheritance公共访问器方法,它如何工作? 它返回一个它不知道存在的实例变量? 此外,我的计算机科学书籍(Baron的AP计算机科学A)对一个问题的正确答案是:“(子类)inheritance了(超类)的所有私有实例变量和公共访问器方法。” 这不是收缩到oracle的教程吗? 谢谢你的帮助

封装与信息隐藏

Ecapsulation和Information Hiding之间究竟有什么区别? 我知道将字段设为私有然后制作字段的setter和getter是ecapsulation.However封装意味着这个? 假设我有一个如下所述的课程。 public Class IsThisEncapsulation { public int age; public void setAge(int age) { this.age=age; } public int getAge() { return age; } } 现在是IsThisEncapsulation类是Encapsulation的一个例子吗? 现在是否会使上述class级中的“年龄”字段实现信息隐藏? 能否请您给我一些明确的例子,以帮助我清楚地区分这些概念?

降低静态方法的可见性

我知道一个孩子不能降低非静态方法的可见性,我理解为什么会这样。 然而,我已经阅读过“静态方法可以通过重新声明隐藏”。 但是我不明白如何在Java中实现这一点。 这真的有可能吗? 如果是的话,该怎么做(代码示例)以及它为什么被引入(它似乎与非减少接口可见性的原则相矛盾)?

隐藏jar文件中的类

是否真的不可能在jar文件中隐藏某些类? 我希望不允许直接实例化类以使其更灵活。 这个jar子里只能看到工厂(或立面)。 除了创建两个项目之外,还有其他方法可以解决这个问题吗? (两个项目:第一个包含类(实现),另一个引用第一个并包含工厂;后面只引用第二个)