Java高级特性之---内部类
来源:互联网 发布:四维单子数据看男女 编辑:程序博客网 时间:2024/06/06 03:36
内部类的概念
- 所谓内部类(inner Class) , 顾名思议,就是将一个类定义在另一个的内部。内部的类称为之为内部类。
public class Outer{ class Inner{ //省略 }}
- 内部类的只要特点
- 内部类可以很好的实现隐藏,可以使用protected、private修饰符。
- 内部类可以直接访问外部类的所有成员,包括私有成员。
- 外部类不能直接访问内部类成员,必须首先要建立内部类的对象才可访问
- 内部类可以解决一些问题,比如间接的去实现多继承。可以避免修改接口而实现同一个类中两种同名方法的调用。
成员内部类的调用
- 成员内部类特点:
- 成员内部类属于内部类的实例成员,成员内部类可以有。
- public,private ,default,protected权限修饰符。在成员内部类访问外部类的成员方法和属性,要使用“外部类名.this.成员方法”和“外部类名.this.成员属性”的形式。
- 创建成员内部类的实例使用“外部类名.内部类名 实例名 = 外部类实例名.new 内部构造方法(参数)”的形式。
- 成员内部类有以下限制:
- 成员内部类与外部类重名。
- 不能在成员内部类中定义static属性、方法和类(static final 形式的常量定义除外)。因为一个成员内部类实例必然有一个外部类实例关联,static 成员完全可以移到外部类中去。
静态内部类及应用
- 静态内部类特点:
- 使用static修饰的成员内部类叫静态内部类。
- 静态内部类跟外部类没有任何关系,只是在生成类名和类定义时有影响,静态内部类可以看作是与外部类的平级类。使用方式与外部类平级的类完全相同。
- 创建静态内部类的实例使用 外部类名.内部类名 实例名 = new 外部类名.内部类名(参数)。
- 静态内部类有以下限制:
- 静态内部类不能与外部类重名。
- 静态内部类不能访问外部类的非静态属性和方法。外部类不能访问内部类非静态属性和方法。
匿名内部类及应用
- 匿名内部类特点:
- 匿名内部类是没有名称的内部类,没办法引用他们,必须在创建时,作为new 语句的一部分来声明并创建他们的实例。
- 匿名内部类必须继承一个类(抽象的、非抽象的都可以)或者实现一个接口。如果父类是抽象类,匿名内部类必须实现其所有抽象方法。
- 匿名内部类中可以定义代码块,用于实例初始化,但不能定义静态代码块。
匿名内部类语法:
new interface/superclass(){//类体}
- 这种形式实现的new 语句声明一个新的匿名内部类,它对一个给定的类进行扩展,或者实现一个给定的接口,并同时创建该匿名内部类的一个新实例。
局部内部类及应用
- 局部内部类的特点:
* 定义在代码块、方法体内、作用域(使用花括号“{}”括起来的一段代码)内的类叫局部内部类。
* 局部内部类访问外部类的属性和方法使用 “外部类名.this.属性名(参数)”的形式。
* 对外部世界完全隐藏,只能在其作用域内生成对象 - 局部内部类有以下限制:
- 局部类不能加访问修饰符,因为他们不是类成员。
- 成员内部类不能与外部类重名
- 局部内部类访问作用域的局部变量,该局部变量需要使用final修饰。
阅读全文
0 0
- Java高级特性之---内部类
- Java高级特性之继承一个内部类
- Java高级特性之new一个内部类
- Java类高级特性之静态内部类
- java.类的高级特性.内部类
- java学习之路 之 高级类特性2-类的成员之五:内部类
- 【学习总结】java高级特性之四种JAVA内部类总结
- 高级类特性----内部类
- Java中类的高级特性——内部类
- Java 内部类特性
- 面向对象高级特性===Java静态内部类、匿名内部类、成员式内部类和局部内部类
- Java类高级之匿名内部类总结(转载)
- java内部类之方法内部类
- java内部类之匿名内部类
- Java内部类之成员内部类
- Java内部类之静态内部类
- Java内部类之匿名内部类
- 面向对象高级特性===Java内部类及其实例化
- ubuntu下看设备温度
- ZOJ 1091 依然是广搜哒~~
- A+B for Input-Output Practice (VII)
- 通过pxe进行系统安装
- 【HDU-1205】吃糖果
- Java高级特性之---内部类
- codeforces 438D(线段树)
- 17暑假多校联赛1.6 HDU 6038 Function
- linux高可用集群HA之pacemaker
- 内存分配方式
- 异步的终极解决方案-ES7的Async/Await
- Relatives---欧拉函数
- 一切都好就是404
- Matlab_回归分析_逐步回归