内部类
-
内部类就是在一个类的内部在定义一个类,比如A类里定义一个B类,那么B相对于A为内部类,A相对于B为外部类。
-
一个Java文件中可以有多个类,但是只能有一个public类
-
成员内部类
成员内部类是最普通的内部类,它的定义为位于另一个类的内部;
public class Outer { private int id; public void out(){ System.out.println("这是外部类方法"); } public class Inner{ //成员内部类 public void in(){ System.out.println("这是内部类方法"); } //可以获得外部类的私有属性,方法 public void getID(){ System.out.println(id); } } }
public class Start { public static void main(String[] args) { Outer outer = new Outer(); //内部类的实例化 Outer.Inner inner = outer.new Inner(); inner.in(); } }
-
静态内部类
静态内部类也是定义在另一个类里面的类,只不过在类的前面多了一个关键字static。静态内部类是不需要依赖于外部类的,这点和类的静态成员属性有点类似,并且它不能使用外部类的非static成员变量或者方法,因为外部类的非static成员必须依附于具体的对象。
public class Outer { private int id; public void out(){ System.out.println("这是外部类方法"); } //静态内部类 static class In{ public void in(){ System.out.println("这是静态内部类方法"); } } }
-
局部内部类
局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。
局部内部类就像是方法里面的一个局部变量一样,是不能有 public、protected、private 以及 static 修饰符的。
//局部内部类 class people{ public void men(){ class son{ int age = 0; } } }
-
匿名内部类(这是一个链接哦!)