语法:

  1. 定义在成员位置的内部类

声明格式:

  1. public class Outer{
  1. class Inner{
  1. //代码
  1. }
  1. }

访问格式:

  1. Outer.Inner x = new Outer().Inner;

子类

  1. package Test14_Demo.Demo07;/*
  2. @create 2020--12--02--15:12
  3. */
  4. public class NestedClass {
  5. //定义成员变量
  6. private String name = "AAA";
  7. //成员内部类 - 可以使用权限修饰符
  8. public class Outer {
  9. //内部类中声明方法
  10. public void innerMethod() {
  11. System.out.println("内部类中的方法被调用了");
  12. //访问外部类中的内容
  13. System.out.println("外部类中的成员变量name的值为:" + name);
  14. }
  15. }
  16. //生成get/set
  17. public String getName() {
  18. return name;
  19. }
  20. public void setName(String name) {
  21. this.name = name;
  22. }
  23. }

内部类的测试:

  • 内部类:是一个相对的概念,即在类中定义的类
  • 内部类可以直接访问外部类的所有的成员 - 包括私有的

  • 内部类:

    成员内部类:定义在成员位置
    
    局部内部类:定义在局部的位置,比如在一个方法内
    
  • 访问格式:

    Outer.Inner x = new Outer().Inner;
    

访问方法:

package Test14_Demo.Demo07;/*

    @create 2020--12--02--15:09
*/

public class NestedClassDemo {
    public static void main(String[] args) {
        //创建成员内部类的对象
        NestedClass.Outer outer = new NestedClass().new Outer();
        outer.innerMethod();
    }
}