内部类分为静态嵌套类、一般内部类(非局部内部类)、局部内部类和匿名内部类。这里只说一般内部类和匿名内部类:
一、内部类是在一个类的内部嵌套定义的类,它可以是其它类的成员,也可以在一个语句块的内部定义,还可以在表达式内部匿名定义。
内部类有如下特性:
① 一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称.名字不能与包含它的类名相同。
② 可以使用包含它的类的静态和实例成员变量,也可以使用它所在方法的局部变量。
③ 可以定义为abstract。
④ 可以声明为private或protected。
⑥ 若被声明为static,就变成了顶层类,不能再使用局部变量。
⑦ 若想在Inner Class中声明任何static成员,则该Inner Class必须声明为static。
二、匿名类是一种特殊的内部类,它是在一个表达式内部包含一个完整的类定义。
①匿名内部类其实是一种局部内部类,且是局部内部类的最常用用法。
②由于匿名内部类没有构造器,所以匿名内部类只能产生一个或多个相同的接口实现对象或是导出类对象。
③由于接口不存在构造器这么一说,所以在返回接口实现对象时,
匿名内部类和一般内部类的功能是一样的,还有简洁的优势。
希望对你有用! |