一、在外部類中使用非靜態內部類:java
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(); } }
運行結果:對象
二、外部類之外使用非靜態內部類:blog
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(); } }
運行結果:class
三、外部類之外使用靜態內部類:方法
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(); } }
運行結果:im