您的位置:首页 > 编程语言 > Java开发

关于java内部类总结

2012-11-03 20:02 302 查看
分类:

(1) 在类中定义一个类(私有内部类,静态内部类)

(2) 在方法中定义一个类(局部内部类,匿名内部类)

内部类是Java编译器一手操办的。虚拟机并不知道内部类与常规类有什么不同,

主要是编译器在编译的时候对内部类和外部类加以处理。

特点总结:

(1) 在类中方法外定义的非静态内部类:

● 内部类可互相访问外围类的所有成员。内部类对外围类可见,可以在外围类中创建内部类对象,引用内部类数据

● 内部类中不能定义静态成员变量。

// 在内部类中偷偷摸摸的创建了包可见构造器,从而使外部类获得了创建权限。

// 在外部类中偷偷摸摸的创建了访问私有变量的静态方法,从而 使 内部类获得了访问权限。

//这样,类中定义的内部类无论私有,公有,静态都可以被包围它的外部类所访问。

(2) 在类中方法外定义的静态内部类:

● 只能访问外部类的静态成员。//静态内部类无法得到其外围类对象的引用,那么自然也就无法访问外围类的非静态成员了。因此,静态内部类只能访问其//外围类的静态成员,除此之外与非静态内部类没有任何区别。

(3) 在方法中定义的局部内部类:

● 该内部类没有任何的访问控制权限 //修饰符无意义

● 外围类看不见方法中的局部内部类的,但是局部内部类可以访问外围类的任何成员。

● 方法体中可以访问局部内部类,但是访问语句必须在定义局部内部类之后。

● 局部内部类能访问方法体中的常量,即用final修饰的成员。//为了保持局部变量与局部内部类中备份域保持一致

(4) 在方法中定义的匿名内部类:

● 是一种特殊的局部内部类,没有构造器,取而代之的是将构造器参数传递给超类(接口或者父类)构造器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: