1.静态内部类
作为类的静态成员
无需新建外部类,直接新建内部类,可直接用,可以访问外部类的静态成员
2.成员内部类
作为类的成员1.服务于本类,不被其他类所调用,一般不在外部单独新建对象 2.会调用很多本类的很多属性,节约空间与可读性
需新建外部类和在内的内部建立内部类,才能使用,可以访问外部类所有成员,如何区分两个this之间的区别,内部就是一个this,而外部的是==外部类名.this;
3.局部内部类
作为方法的成员
只能在方法内部声明并使用,可以访问外部类和方法的成员,需要将成员修饰为final,同时方法加载后,该类被清除。
4.匿名内部类
类似于继承(注意JDK1.8以下不能直接使用方法的局部变量,需要将局部变量设置为全局变量)
注意:设置界面需要经常使用到匿名内部类,匿名内部类的this是指匿名的对象,需要用到外部的对象时,应该加外部类的类名.this。
public Person{
public void show(Student msg){
msg.show();
}
}
class Student{
public void show(){
System.out.println(“我在成员内部类中”);
}
}
public class Test{
public static void main(String[] args){
Person p=new person();
p.show(new Student()){//匿名内部类的用法,student是父类,属于被继承,下面的方法是他被重写的方法
public void show(){
System.out.println(“在匿名内部类中”);
}
}
}
}