Java | 嵌套类(Nested Class)

Posted Blume

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java | 嵌套类(Nested Class)相关的知识,希望对你有一定的参考价值。

前言


本文内容主要来自 Java 官方教程中的《嵌套类》章节。

 

定义


嵌套类(Nested Class),是 Java 中对类的一种定义方式。Java 编程语言允许一个类被定义在另一个类中,这样的类就称为嵌套类

嵌套类分为两种:静态的和非静态的。用 static 关键字来声明的嵌套类,称为静态嵌套类(Static Nested Class)。非静态嵌套类(Non-Static Nested Class),又称为内部类(Inner Class)。

包含嵌套类的类,可称为外围类(Enclosing Class)或外部类(Outer Class)。嵌套类可作为其外围类的成员。非静态嵌套类(内部类)可访问其外围类的其他成员,即使这些成员被声明为私有的。静态嵌套类不能访问其外围类的其他成员。

若嵌套类作为其外部类的成员,则它可声明为 publicprivateprotected包私有的

 

概述


为何使用嵌套类

使用嵌套类的主要理由是:

  • 它是一种只对一个地方使用的类进行逻辑分组的方法:如果一个类只对另一个类有用,那么将其嵌入到该类中并使这两个类保持在一起是合乎逻辑的。嵌套这样的“助手类(Helper Class)”使它们所在的包更为精简。
  • 它增强了封装性:考虑两个顶层类,A 和 B,当 B 需要访问 A 中被声明为 private 的成员时,可将 B 嵌入 A 中,这样 B 就可以访问 A 中的私有成员了。此外,B 本身也可以对外界隐藏起来。
  • 它使代码更具可读性和可维护性:在顶层类中嵌套小类,会使代码更接近其使用的位置。

静态嵌套类和内部类

静态嵌套类内部类,是嵌套类的两个分类。想要了解更多的相关信息,请参阅《静态嵌套类》和《内部类》。

以上是关于Java | 嵌套类(Nested Class)的主要内容,如果未能解决你的问题,请参考以下文章

java嵌套类(Nested Classes)总结

java嵌套类(Nested Classes)总结

Java Nested Classes(内部类~第一篇英文技术文档翻译)

什么是内部类? Static Nested Class 和 Inner Class 的不同。

五. 面向对象高级特性1. Java内部类及其实例化

java 嵌套的Recyclerview删除滚动。链接:https://stackoverflow.com/questions/37301724/recyclerview-inside-nested-