内部类的使用:
1、在外部类中使用非静态内部类:
public class OutClass{ private class InClass{ public void info(){ System.out.println("内部类的方法!"); } } //-外部类中调用非静态内部类方法,先创建实例 public void doInClass(){ InClass Ic=new InClass(); Ic.info(); } public static void main(String[] args){ OutClass Oc=new OutClass(); Oc.doInClass(); //-静态方法中直接调用非静态内部类方法: OutClass.InClass Ic; OutClass Ocl=new OutClass(); Ic=Ocl.new InClass(); Ic.info(); //-把上面的代码可以简写 OutClass.InClass Icl=new OutClass().new InClass(); Icl.info(); } }
运行结果:
2、外部类以外使用非静态内部类:
class Out{ //-定义一个非静态内部类,省略修饰符,说明只能在包范围以内调用该类 class In{ public void pri(){ System.out.println("这是非静态内部类中的方法"); } } } public class OutInClass{ public static void main(String[] args){ //-外部类以外 调用内部类的方法 Out.In oi=new Out().new In(); oi.pri(); } }
运行结果:
3、外部类以外使用静态内部类:
class Out{ //-创建静态内部类,省略修饰符,包内可访问 static class In{ public void info(){ System.out.println("静态内部类方法!"); } } } public class OutInStaticClass{ public static void main(String[] args){ //-创建静态内部类的实例对象 Out.In oi=new Out.In(); oi.info(); } }
运行结果:
热心技术,并兼吃喝,偶谈风月,不言国事.