当前位置: 首页 > backend >正文

Java 内部类

文章目录

  • 内部类
    • 实例内部类
    • 静态内部类
    • 匿名内部类
    • 局部内部类

在这里插入图片描述

内部类

  1. 一个事物的内部,还需要一个完整的结构进行描述,而这个结构只为外部服务,这个内部的完整结构叫内部类
  2. 可以将一个类定义到另一个类内,或一个方法内,里面的是内部类,外面的是外部类

实例内部类

  1. 如何实例化内部类
  2. 外部类的成员在内部类中都能直接访问

在这里插入图片描述

package test2;class outClass{private int a = 3;public static int b = 2;class inClass{private int  a = 1;// 在运行时确定的// static修饰的调用不需要实例化就能调用,而这个变量在内部类需要实例化内部类才能使用// public static int d = 2;public static final int d = 3;// 在编译的时候就确定了,是个常量,不依赖于实例化public int e = 2;public void test() {System.out.println("inClass::test");System.out.println(this.a);// 1System.out.println(a);// 1System.out.println(outClass.this.a);// 3}}public void test(){inClass inclass = new inClass();System.out.println(inclass.a);System.out.println(inclass.e);System.out.println("outClass::test");}
}public class testnbl {public static void main(String[] args) {// 实例化内部类outClass class1 = new outClass();outClass.inClass class2 = class1.new inClass();outClass.inClass class3 = new outClass().new inClass();class1.test();class2.test();}
}
  1. 字节码文件
    外部类类名$内部类类名.class

在这里插入图片描述

静态内部类

  1. 静态内部类不需要有外部类对象的引用
    在这里插入图片描述
  2. 创建外部类对象的引用
class oclass{private int a = 1;public static int b = 2;public int c = 3;static class iclass{public int d = 4;public static int e = 5;private int f = 6;public void test(){oclass Out = new oclass();System.out.println(Out.a);System.out.println(b);System.out.println(Out.c);System.out.println(d);System.out.println(e);System.out.println(f);System.out.println("iclass::test");}}public void test(){System.out.println("oclass::test");}
}public class testnbl {public static void main(String[] args) {oclass.iclass a = new oclass.iclass();a.test();}
}

匿名内部类

  1. 你有一个类实现了IA接口,重写了test方法
interface IA{void test();
}public class testnbl {public static void main(String[] args) {// 第一种方法调用// 匿名内部类对象IA a = new IA(){public void test(){System.out.println("重写了接口的方法!");}};a.test();// 第二种方法调用new IA(){public void test(){System.out.println("重写了接口的方法!");}}.test();}
}

局部内部类

  1. 只能在其方法内部使用
  2. 不能被public和static修饰符修饰
  3. 很少使用

在这里插入图片描述
4. 字节码文件

在这里插入图片描述

http://www.xdnf.cn/news/8802.html

相关文章:

  • Php JIT 使用详解
  • 慢查询日志的开启与分析:优化SQL性能的实战指南
  • 审计报告附注救星!实现Word表格纵向求和+横向计算及其对应的智能校验
  • rt-linux里的泛rtmutex锁的调用链整体分析
  • clickhouse-1-特性及docker化安装
  • C语言指针进阶
  • 互联网大厂Java求职面试:AI与大模型应用集成中的架构难题与解决方案
  • 向量数据库选型实战指南:Milvus架构深度解析与技术对比
  • OPENEULER搭建私有云存储服务器
  • 使用 Python 库中自带的数据集来实现上述 50 个数据分析和数据可视化程序的示例代码
  • Go 语言基础1 Slice,map,string
  • 在PyCharm中使用pyenv指定的Python:配置指南
  • 机器学习--分类算法
  • xml双引号可以不转义
  • 【python实战】中国主要城市经济统计数据分析与预测
  • 力扣395做题笔记
  • 深度学习论文idea:多模态检索
  • 计算机网络总结(物理层,链路层)
  • 【深度学习】2. 从梯度推导到优化策略:反向传播与 SGD, Mini SGD
  • 最好用的wordpress外贸主题
  • 【概率论基本概念02】最大似然性
  • 正则表达式:字符串模式匹配的利器
  • Bochs下去运行linux-0.11
  • 云原生安全基石:深度解析HTTPS协议(从原理到实战)
  • 图论核心:深度搜索DFS 与广度搜索BFS
  • 【React】createPortal - 简单的Message和Modal组件
  • JAVA集合(含List、Map、Set)(超详细版)
  • 阿里云国际版香港轻量云服务器:CN2 GIA加持,征服海外网络的“速度与激情”!
  • 搭建 C/C++_CMake_Boost_git 开发环境
  • 【最新版】Arduino IDE的安装入门Demo