基础 -- Java笔记6--内嵌类
Java笔记6–内嵌类
2016年1月20日
14:58
6 java中的几种典型类:
6.1 java静态类:
特性:静态类不能实例化(静态类在运行时静态的加载到内存中,不需要初始化,没有实例,不能用this),类的成员都要是静态成员和静态方法。
静态方法不需要实例调用,类名.方法名(静态方法存在的意义就是为该程序中的其他类提供一些工具,为了方便使用)
静态变量是存在了常量池中。
静态代码块是在一个类第一次装载时运行,且只运行一次。
静态内部类:通常普通类是不允许用static修饰的,只有一个内部类才可以,静态内部类不需要实例化一个外部类,只要通过 外部类.内部类 引用就行了
6.2 java匿名类:
应用场景:当我们想要一个对象但却不值得为它而创建一个全新的对象(所需要的类过于简单,或者是我们只是要在一个方法内部使用)
通常在开启多线程和Swing应用程序中创建快速时间处理程序
把匿名类作为一个方法的返回值,返回一个接口的实现类对象,只是这个实现类没有名字。
6.3 java内部类:
定义:在一个类里面声明另一个类。
特性:可以使用包含它的类的静态和实例成员变量,也可以使用它所在的方法的局部变量。
可以定义为abstract 可以声明为private或protected
若被声明为了static,就变成顶层类,不能再使用局部变量了
若想在Inner Class中声明任何的static成员,则这个InnerClass必须声明为static。
在创建非静态的内部类对象时,哟啊先创建相应的外部类对象,因为它有指向外部类对象的引用(当外部内和内部类的变量名重复时,其实这时有两个this指针,外部类.this.外部变量名)
使用实例: 首先我们要有一个接口(外部的,正常的)
我们在一个类中想要获得这个接口实现类的对象,就可以写一个方法getXXX();这个方法的返回值为该接口,在这个方法中写一个局部内部类,最后方法返回时创建一个局部内部类的对象。这时我们在外部调用这个方法时就可以得到接口的实现类的对象了,而且我们不会看到实现类的名字,这样就完成了封装。(注意局部内部类不能用private、protected和public修饰,因为这时我们只是要在该局部代码块可见,不需要对外部开放可视权限)
6.4 java异常类:
概念:java把异常当做对象来处理,并定义了一个基类java.lang.Throwable作为所有异常的超类。它有两个子类Error和Exception,分别表示错误和异常。
Error 是程序无法处理的错误,如:outofmemoryError、threaddeath等
Exception分为:RuntimeException 常见的NullPointerException、IndexOutOfBoundsException
非运行时异常:只那些不处理程序就没有办法编译通过 常见的IOException、SQLException,以及用户自定义异常。
已使用 Microsoft OneNote 2016 创建。
