什么是 Java 内部类?有哪些分类、优点和应用场景?

您所在的位置:网站首页 java里面的除法 什么是 Java 内部类?有哪些分类、优点和应用场景?

什么是 Java 内部类?有哪些分类、优点和应用场景?

2023-03-10 21:44| 来源: 网络整理| 查看: 265

顾名思义,内部类是指定义在某一个类中的类,主要分为成员内部类,静态内部类,局部内部类和匿名内部类四种。分类定义作用范围应用成员内部类与其外部类的其他他成员变量和方法平级的内部类可以访问外部类的所有成员变量和方法可以被外部类访问为外部类提供服务的场景静态内部类用 static 修饰的内部类只能访问外部类的静态成员变量和方法只能被外部类的静态方法访问与外部无关或者需要单例模式的场景局部内部类定义在方法中的内部类在方法中直接实例化可以访问外部类或代码块中声明为 `final` 的变量作用域仅限于方法内不能使用访问控制符修饰执行特定任务或逻辑操作场景匿名内部类没有满足的内部类使用 `new接口 ` 或 `抽象类(){}` 或 `new 父类(){}`没有名字、没有构造器、只能使用一次必须继承一个父类型(接口或抽象类)或实现一个接口的局部内部类创建回调函数、事件监听器、线程等临时性对象

创建与获取

// 1、私有内部类 => 在外部类中编写方法,对外提供内部类对象 // 定义方法(外部类中) public Inner getInstance(){ return new Inner(); } // 使用方法 Outer o = new Outer(); Object i = o.getInstance(); // 2. 非私有内部类 => 直接创建成员内部类 // 外部类名.内部类名 对象名 = new 外部类对象.new 内部类对象; Outer.Inner oi = new Outer().new Inner();

优点

可以隐藏实现细节。便于编写和维护,提高代码的可读性和可维护性。使用内部类解决 Java单继承问题可以更换的对外部类进行扩展

注:JDK16 之前成员内部类里不能定义静态变量



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3