指的是在Java中可以将一个类定义在另一个类内部。
内部类可以定义在
1.类的成员位置,成员内部类
作为成员,与属性,方法在一个层次
跟正常类一样,可以使用权限修饰符,特征修饰符修饰,public ,private ,final ,static这些。
好处:1.省了一个源文件 2.可以直接访问外部类的成员
用法:通过外部类对象创建内部类对象,然后跟正常方法一样调用就行了。
注意:如果属性重名,想通过对象.方式调用,内部类中this.name,外部类对象.this.name
编译后会产生一个内部类字节码文件
2.局部内部类
定义在块、方法里面,作为成员的内部结构,跟局部变量一个层次
注意:1.不能使用权限修饰符特征修饰符修饰,默认的就行。
2.只能用abstract或final
3.局部内部类里面定义变量只能是final的
3.匿名内部类,只有类主体body部分没有结构(修饰符,名字,继承,实现这些),么有构造方法
成员匿名内部类
正常的
public interface Test{ public void test(); } public class Person implements Test{ public void test(){ .... } } //使用匿名内部类后 public interface Test{ public void test(); } Test t=new Test(){ public void test(){ .... } }
局部匿名内部类
4.静态内部类
成员静态内部类,不需要外部内对象,可以正常访问。