十、Java——内部类

 一、类中定义类数组

(1)当一类中的成员,做为另一种事物的时候,这个成员就能够定义为内部类.app

(2)分类:①成员内部类函数

              ②静态内部类spa

              ③私有内部类指针

              ④局部内部类orm

              ⑤匿名内部类 对象

              ⑥Lambda表达式 blog

 

2、成员内部类继承

(1)一个类定义在外部类的成员位置就为成员内部类,具备类的特色,继承,实现...成员内部类具备成员的特色,被成员修饰符修饰。接口

(2)注意:①在成员内部类中不能定义静态内容,除了静态常量,静态内部类才能任意定义静态内部。

        ②在成员内部类中可使用外部类中的成员,包括私有的,静态的。

        ③在外部类中能够跟随成员内部类的对象使用成员内部类的成员。

        ③成员内部类的对象性须要经过外部类对象构建  外部类名.内部类类名 引用 = new 外部类().new 内部类()。

        ⑤跟随内部类的对象使用内部类的成员,注意访问权限。

 

3、静态内部类:

(1)能够定义静态内容(成员),成员内部类中不能够直接定义静态内容除了静态常量之外。

(2)静态内部类中能够直接使用外部类中静态内容,须要经过外部类对象使用外部类中的成员(由于内部类自己是静态的)。

(3)外部类中能够直接经过内部类对象使用内部类成员,能够经过内部类的类名使用内部类静态内容。

(4)其余类中使用静态内部类中内容:

①静态内部类中的静态内容 : 外部类类名.内部类类名.静态内容

②静态内部类中的成员内容: new 外部类类名.内部类类名();  经过内部类对象调用它成员。

4、私有内部类

        只能在当前外部类中经过内部类对象使用。

5、局部内部类

(1)不能被成员修饰符等修饰(public,private,protected,static)。

(2)局部内部类中不能定义静态内容,除了静态常量。

(3)局部内部类中能够直接使用外部类成员,可使用所在方法中的局部变量。

(4)局部内部类智能在当前所在的方法中经过内部类对象使用,其余位置没法使用。

(5)在局部内部类中使用了所在方法中的局部变量|形参,这个局部变量会默认被final修饰。

(6)jdk8开始默认被final修饰,jdk7及以前须要显示被final修饰

 

6、匿名内部类

(1)做用: 用来简化没有自己本身做用的实现类 | 子类。

(2)上层 : 接口 | 抽象类。

 

7、Lambda 表达式

jdk8新增lambda表达式

(1)做用: 为了简化匿名内部类对象

(2)前提: 函数式接口

(3)函数式接口 : 只有一个必须被重写的抽象方法的接口

(4)强制检测是否为函数式接口:注解: @FunctionalInterface

(5)语法:

            ()->{}

            () :  匹配要重写的抽象方法的参数列表

            -> : 箭头函数  箭头符号

            {} : 要重写的抽象方法的方法体

 

 

8、异常:

程序没法正常执行完毕

(1)异常体系:

            Throwable

            /       \

         Error      Exception

(2)Error : 错误,通常由虚拟机生成并脱出,无须要程序猿管理

(3)Exception : 异常

①CheckedException 编译时异常|检查时异常:  发生在程序编译期间程序若是遇到编译时异常没有处理,程序没法正常运行

②RuntimeException 运行时异常 : 发生程序运行期间通常能够经过加强程序健壮性的代码处理 if

(4)注意 :若是程序遇到异常没有处理,没法继续执行

(5)常见的一些运行时异常:

①空指针异常 NullPointerException

②数组越界异常 ArrayIndexOutOfBoundsException

③数组长度负数异常 NegativeArraySizeException

④类型转换异常 ClassCastException

⑤数学异常 ArithmeticException

⑥数字格式异常 NumberFormatException


相关文章
相关标签/搜索