在Java中将顶级类设为非公开的原因是什么?
假设我们有Foo.java
,可能有
class Foo {
}
要么
public class Foo {
}
我知道在前面的示例中会出现一些类可见性问题(可能不会从其他包中看到)。但是,无论如何,有人出于某些原因想要执行第一个代码示例中的操作吗?
UPD:我在以前的解决方案中看到了什么缺点:没有人关心它是non- public
。该类可以public
稍后在同一包中由其他某个类简单地扩展,那么该类的非公共部分可能会给您带来可见性/访问性问题。
这是一个例子。没有人需要知道我们的ConcreteDocument的存在。
DocumentIF.java
public interface DocumentIF {
}
ConcreteDocument.java
class ConcreteDocument implements DocumentIF {
}
DocumentFactory.java
public class DocumentFactory {
public DocumentIF createDocument() {
return new ConcreteDocument();
}
}
问题内容: 在我看来,创建辅助类时,非公共顶级类和静态嵌套类实际上执行相同的任务。 A.java A.java 除了如何引用它们,在我看来,创建助手类的两种方法之间几乎没有什么区别。它可能主要归结为偏好。有人看到我想念的东西吗?我想有些人会争辩说,每个源文件最好有一个类,但是从我的角度来看,在同一源文件中有一个非公共的顶级类似乎更干净,更有条理。 问题答案: 在这两个示例中,每个源文件都没有一个类
以下两者之间的区别是什么:
本文向大家介绍Java中的公共关键字,包括了Java中的公共关键字的使用技巧和注意事项,需要的朋友参考一下 公共访问修饰符-public 可以从任何其他类访问声明为public的类,方法,构造函数,接口等。因此,可以从属于Java Universe的任何类中访问在公共类内声明的字段,方法,块。 但是,如果我们尝试访问的公共类位于不同的包中,则仍然需要导入公共类。由于类继承,类的所有公共方法和变量均
如何调用从公共静态空白到非静态的公共空白碎片类?或者有另一种方法在(listViewHolder.dot.setOnClickListener(new View.OnClickListener()和公共无效搜索3())
我在AWS中有一个公共子网,我在其中有3个实例。。。 WebApp01 (例如弹性 IP - 54.23.61.239) WebApp02 (私有 IP - 192.168.0.24) 虚拟应用程序03 (私有 IP - 192.168.0.25) 我的路由表设置为192.168.0.0/16 - 我可以看到拥有公共IP的实例可以访问互联网,但没有公共IP的实例无法访问互联网。 如何让Intern
我想从一个对象中获得一个具有公共超级类的字段列表,然后迭代它们并执行超级类中存在的方法。示例: 所以从BasePage类,我想实现检查方法,它应该解析一个页面的字段列表,然后得到具有超级类basElement的字段列表,然后为每个启动方法存在。我确认它不是反射私人领域的复制品