Java 内部类(成员、局部、匿名)

简介: Java 内部类(成员、局部、匿名)
  • 内部类格式
public class Outer {
  public class Inner {
  }
}
  • 内部类访问特点内部类可以直接访问外部类的成员,包括私有,外部类要访问内部类的成员,必须创建对象
public class Outer {
  // 内部属性
  private int num = 10;
  // 内部类
  public class Inner {
    // 内部类方法
    public void show() {
      System.out.println(num);
    }
  }
  // 内部方法
  public void innerShow() {
    Inner i = new Inner();
    i.show();
  }
}
  • 在其他类使用内部类
Inner i = new Outer().new Inner();
i.show();
Outer o = new Outer();
o.innerShow();
  • 局部内部类
    局部内部类是在方法中定义的类,所以外界是无法直接使用,需要在方法内部创建对象并使用,该类可以直接访问外部类的成员,可以访问方法内的局部变量
public class Outer {
  // 内部属性
  private int num = 10;
  // 内部方法
  public void innerShow() {
    // 内部类
    class Inner {
      // 内部类方法
      public void show() {
        System.out.println(num);
      }
    }
    // 创建调用局部内部类
    Inner i = new Inner();
    i.show();
  }
}
  • 匿名内部类
public class Outer {
  // 内部属性
  private int num = 10;
  // 内部方法
  public void innerShow() {
    // 匿名内部类
    // new Inner() {
    //   public void show() {
    //     System.out.println(num);
    //   }
    // }.show();
    Inner i = new Inner() {
      public void show() {
        System.out.println(num);
      }
    };
    i.show();
  }
}
相关文章
|
9月前
|
缓存 JavaScript Java
怎么在Java 16中编写C风格的局部静态变量
Java 16通过 JEP 395 放宽了内层类声明静态成员的限制, 允许声明静态成员, 如记录类成员. 这项改进使得可以在局部范围内使用类似 C 风格的静态变量, 即局部变量仅初始化一次并在多次调用间共享. 例如, 缓存正则表达式模式, 以前需要将其置于类命名空间中, 现在可以保持在方法范围内
105 5
|
5月前
|
JSON Java 程序员
Java|如何用一个统一结构接收成员名称不固定的数据
本文介绍了一种 Java 中如何用一个统一结构接收成员名称不固定的数据的方法。
67 3
|
6月前
|
Java 编译器
【Java】内部类
【Java】内部类
44 0
|
8月前
|
Java
【Java基础面试二】、个Java文件里可以有多个类吗(不含内部类)?
这篇文章讨论了Java文件中类的定义规则,指出一个Java文件可以包含多个类(不包含内部类),但其中最多只能有一个public类,且如果有public类,它的名称必须与文件名一致。
|
8月前
|
Java 调度 开发者
Java 神秘新成员 —— 虚拟线程究竟是什么?它又能解开哪些编程痛点之谜?
【8月更文挑战第23天】Java虚拟线程是一种轻量级执行线程,由Java运行时管理,相较于传统操作系统线程,其创建和管理成本更低。基于用户模式线程概念,Java应用程序无需依赖OS即可实现高度并发。虚拟线程数量可远超传统线程,有效提升多核处理器利用率和并发性能。它解决了传统Java线程模型中创建成本高、调度开销大及I/O阻塞等问题,极大提高了程序的并发性和响应速度。
71 1
|
8月前
|
算法 Java
12 Java常用类(一)(内部类+object类+包装类)
12 Java常用类(一)(内部类+object类+包装类)
63 5
|
9月前
|
Java
Java进阶之内部类
【7月更文挑战第13天】Java内部类增进代码组织与封装,允许直接访问外部类成员,包括私有成员。主要有四种类型:成员、静态、局部和匿名内部类。匿名内部类常用于一次性实现接口或扩展类。内部类可隐藏实现细节,减少命名冲突,并在特定上下文中定义辅助类。示例展示了静态和非静态内部类如何在Shape类中封装Circle和Rectangle。使用内部类能提升代码可读性,但可能增加复杂性。
66 6
|
9月前
|
Java 程序员
【Java探索之旅】继承概念_语法_父类的成员访问
【Java探索之旅】继承概念_语法_父类的成员访问
101 10
|
8月前
|
Java
【Java】内部类、枚举、泛型
【Java】内部类、枚举、泛型
|
10月前
|
Java
一篇文章讲明白Java中内部类详解—匿名内部类
一篇文章讲明白Java中内部类详解—匿名内部类
143 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等