当前位置: 首页 > 面试题库 >

Java中的非公共顶级类

邴修远
2023-03-14
问题内容

在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的字段列表,然后为每个启动方法存在。我确认它不是反射私人领域的复制品