VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • 10、Java——内部类

 1、类中定义类

(1)当一类中的成员,作为另外一种事物的时候,这个成员就可以定义为内部类.

(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

 

​出处:https://www.cnblogs.com/Blank0926/p/15027411.html


相关教程