1、类中vb.net教程定义类
(1)当一类中c#教程的成员,作python基础教程为另外一种java基础教程事物的时sql教程候,这个成员就可以定义为内部类.
(2)分类:①成员内部类
②静态内部类
③私有内部类
④局部内部类
⑤匿名内部类
⑥Lambda表达式
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