Java类仅对当前文件可见
在Java中是否可以定义一个外部类(即顶层),使其仅对该文件可见?我想在C++中使用一些静态关键字来限制文件范围的可见性。 如果没有,原因是什么?解决方法是什么Java类仅对当前文件可见,java,Java,在Java中是否可以定义一个外部类(即顶层),使其仅对该文件可见?我想在C++中使用一些静态关键字来限制文件范围的可见性。 如果没有,原因是什么?解决方法是什么 谢谢。不,你要的是不可能的。您可以通过使类成为私有的静态内部类来隐藏类,也可以将它们设置为顶级的、受包保护的(默认)类,并将一小部分涉及的类放入它们自己的包中。不,您所要求的是不可能的。您可以通过使类成为私有的静态内部类来隐藏类,也可以将它们设置为顶级的、受包保护的(默认)类,并将一小部分涉及的类放入它们自己的包中。我不确定您真正想做什
谢谢。不,你要的是不可能的。您可以通过使类成为私有的静态内部类来隐藏类,也可以将它们设置为顶级的、受包保护的(默认)类,并将一小部分涉及的类放入它们自己的包中。不,您所要求的是不可能的。您可以通过使类成为私有的静态内部类来隐藏类,也可以将它们设置为顶级的、受包保护的(默认)类,并将一小部分涉及的类放入它们自己的包中。我不确定您真正想做什么,但是,为了详细说明@Ernest,您可以设置一个包访问类,为了彻底性,将其设为私有构造函数,在该类中仅此而已。然后,有一个包含“真实”内容的私有静态内部类。e、 g
class Foo { // "package" access
private Foo() {}
private static class Bar {
// real stuff here...
}
}
p、 美国对此的投票应该交给欧内斯特,我只是详细阐述了他的想法。我不确定您真正想做什么,但是,为了详细说明@Ernest,您可以创建一个包访问类,使其构造函数完全私有,在该类中仅此而已。然后,有一个包含“真实”内容的私有静态内部类。e、 g
class Foo { // "package" access
private Foo() {}
private static class Bar {
// real stuff here...
}
}
p、 美国对此的投票应该交给欧内斯特,我刚才详细阐述了他的想法
如果不是,为什么
对于这样的语言设计问题,唯一能得到真正答案的方法就是询问语言设计师
然而,以下原因可能涵盖了这一点
- 一种试图支持太多东西的编程语言将变得太复杂,无法指定和实现,也无法让普通程序员理解。前者导致语言异常和编译器错误,后者导致应用程序中的错误
- Java语言设计者认为4个级别的访问/可见性就足够了<代码>公共,
,包专用和受保护
专用
- Java语言设计人员设计用于源代码没有组织/存储在离散文件中的情况。事实证明,(几乎)每个人仍然使用离散文件来表示源代码。。。但他们不知道(20多年前)
- 一种试图支持太多东西的编程语言将变得太复杂,无法指定和实现,也无法让普通程序员理解。前者导致语言异常和编译器错误,后者导致应用程序中的错误
- Java语言设计者认为4个级别的访问/可见性就足够了<代码>公共,
,包专用和受保护
专用
- Java语言设计人员设计用于源代码没有组织/存储在离散文件中的情况。事实证明,(几乎)每个人仍然使用离散文件来表示源代码。。。但他们不知道(20多年前)