java - 本地内部类和非静态内部类有什么区别?

标签 java local inner-classes

我只是想要根据如何从封闭类或彼此的内部类访问成员的差异。

关于静态、最终、有效最终成员,为什么?

最佳答案

静态嵌套类实际上与使用单独的类文件相同,只不过您将其放入另一个类文件中。

如果它不是静态的,则称为内部类内部类可以访问其封闭类的所有成员。对于静态嵌套类,它们可以存在而无需实例化另一个类,但内部类只能存在于其封闭类的实例中。

您应该注意概念的命名。简而言之:

  • 静态嵌套类:几乎与普通类相同,但包含在另一个类中。有权访问公共(public)成员
  • 内部类:只能存在于其封闭类的实例中。有权访问所有成员。
  • 本地类:在 block 中声明的类。它就像一个内部类(可以访问所有成员),但它也可以访问本地范围。

official documentation对此进行了详细解释,因此我建议您仔细阅读它。有关本地和匿名内部类的信息也可以在那里找到。

关于java - 本地内部类和非静态内部类有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20373162/

相关文章:

c# - 只允许外部类实例化内部类,但内部类应该是公共(public)的

java - 如何修复非静态变量 this 无法从具有内部类的静态类引用?

java - 使用哪个版本的 AES?

java - Spring行为中的@async是同步的

java - 在 Java 中创建新实例的一种有趣方式

python - 在 Sq Lite 3 Python 中比较

debugging - 如何从 RAD 中本地运行 Websphere Portal/portlet 进行调试

c++ - 函数调用与局部变量

java - java中如何实例化一个成员类的数组

java - Solr 索引时搜索