java内部类

来源:互联网 发布:微信打不开淘宝客链接 编辑:程序博客网 时间:2024/06/07 01:48
自从学习了内部类(成员内部类、局部内部类、匿名内部类和静态内部类),总在一些细节上出现问题,或者说是对于用法出现混淆,导致出现错误,虽然在IDE等工具下很容易找出来,但一而在的犯错,说明自己根本没有用心去学,任何事只要用心相信才可以做好,所谓专注。因此找了一些资料,整理了一下,便以记忆。
一、成员内部类,顾名思义,就是作为一个类的成员,这跟外部类的属性、方法是并列的。注意一点:内部类中不允许定义静态变量;内部类访问自己内部类中的(与外部类)相同名字的变量,可直接用变量名,也可用this.变量。而外部类访问内部类中与外部类名相同的变量用:外部类名.this.变量名。
优点:可访问外部类的私有成员或属性,即使是private。
二、局部内部类,即方法中定义的内部类,与局部变量类似,不加public或private。局部内部类不可定义静态变量,可以访问外部类的局部变量(方法内的变量),但变量必须是final的。
在类外不能直接生成局部内部类,保证局部内部类对外是不可见的,要想使用局部内部类时需要生成对象,对象调用方法,方法中才能调用其局部内部类。
三、静态内部类,static定义的内部类,可用private,protected,public修饰。静态内部类只能访问外部类的静态成员。外部类访问内部类的静态成员:内部类.静态成员
四、匿名内部类,即无名类,常包含在方法内:方法名(new 对象名{});匿名内部类在编译时由系统自动起名.
原创粉丝点击