Java是否允许嵌套包?如果是,那么为什么外部类不能私有? 私有外部类的范围将在该内部包之内,而默认修饰符的范围将在该外部包之内?

喜欢

{ // Outer Package

// Scope of default Access Modifier


    {  // Inner Package

       // Scope of private class

        private class Abc{



        }


        class Bcd{

        }

    }

}

#1楼 票数:1

根据文档 ,这是不可能的:

package语句(例如,package图形;)必须是源文件中的第一行。 每个源文件中只能有一个package语句,它适用于文件中的所有类型。

#2楼 票数:1

Java中没有嵌套的包。

但是,在这种情况下,程序包中将包含一个类,这样程序包路径将如下所示:
com.foo.Bar

然后,在其下可能存在其他包目录,以便另一个类的包路径如下所示:
com.foo.boo.Lou

Oracle的文档提供了以下链接,很好地概述了类的访问控制。

这里的这一节解释了何时使用嵌套类,我认为这将为您提供更好的解释,下面将对此进行引用:

如果您的要求与本地类的要求相似,并且希望使该类型更广泛地使用,并且您不需要访问本地变量或方法参数,请使用它。

  • 如果您需要访问封闭实例的非公共字段和方法,请使用非静态嵌套类(或内部类)。 如果您不需要此访问,请使用静态嵌套类。

这里是一个补充链接指向有关类类型和包隐私之间的区别的更多信息。

希望这可以帮助。

  ask by Marut Goel translate from so

未解决问题?本站智能推荐:

5回复

Java类名与嵌套包名相同

在我的Java应用程序中,我使用第三方库。 但是,我发现了一些奇怪的东西,有一些嵌套包,还有一些类的名称可能与包的名称相同。 我恐怕无法说清楚。 这是一个例子: 包 在'com.xx.a'中有一个名为'a'的类。 所以如果我想把这个班叫'a'...... 我写: 然
1回复

Java嵌套包可见性

通常,当我设计项目的某些新组件时,我遇到了一个限制,即我无法找到正确的解决方法... 想象一下一个包“组件”,在这个组件包中,您有一些公共类/接口自然是设计用来公开共享的,还有一些内部包中需要的类/接口(ComponentSpecificStuff),但是这些类/接口在包外部是不可见的。 .
1回复

Java中的嵌套包

首先,我想创建一个具有以下结构的自定义用户库: SRC: LibA.pack1 ClassName0.java LibA.pack2 ClassName1.java 我没问题。 后来我想将这个库导入另一个项目并调用 (使用pack1和
2回复

如何在Java中正确组织和嵌套软件包

如果要使用以下方法,请遵循Java教程的软件包命名约定: org.example.hyphenated_name.user org.example.hyphenated_name.product 这将如何转换为实际创建此包结构。 我会为org创建一个单独的软件包,然后在org内创建
2回复

JSP中的Java包

我正在使用netbeans6.7 ide。 我已经在Web文件夹的jspfiles文件夹中创建了一个jsp文件usermanagement.jsp 并创建了一个Java包com.test.test1,然后在该Java包中的temp中创建了一个Java类。 现在我想在我编写的userma
4回复

Java包中包?

我正在使用 eclipse 3.8 indigo,但我不知道为什么,当我创建一个新包时,新包的目的地在外面。 我想在一个包中创建新包:包中包。 我试图复制/粘贴新创建的包或移动,但它只是复制。 例如,我想在我的主源包中创建不同的包:对话框、视图、表等。 例如:
1回复

在Java中创建包

这里有人可以帮我处理包裹吗? 我已经了解包的工作原理。 如何导入它们以及如何使用 package 关键字制作它们。 目录和工作方式。 什么是类路径以及如何设置它。 但是我无法得到的一件事是如果我想创建一个包并在类路径中添加基目录的位置,那么该基目录中应该是什么?? 它是 .java 文件还是 .cl
4回复

如何在Java中创建包

如何用Java创建一个包: 我在一本书中读到: 但这不应该放在括号中,例如: 只是一个小混乱。 谁能给我一个正确语法的例子吗?