【JAVA基礎】靜態內部類和非靜態內部類

結論:

1.靜態內部類只能夠訪問外部類的靜態成員,非靜態內部類可以訪問外部類的所有成員。

2.靜態內部類能有靜態成員(方法、屬性),非靜態內部類不能有靜態成員(方法、屬性)。

3.靜態內部類和非靜態內部類在創建時有區別。靜態內部類即使外部類沒有被創建時依然存在。非靜態內部類必須通過外部對象進行調用。

package lx.test;

public class OutClassTest {

	 int out1=1;
	 static int out2=1;
	 void out(){
	        System.out.println("非靜態");
	    }
	 static void outstatic(){
	        System.out.println("靜態");
	    }
	 public class InnerClass{
	     void InnerClass(){
	            System.out.println("InnerClass!");
	            System.out.println(out1);
	            System.out.println(out2);
	            out();
	            outstatic();
	        }

	      // static void inner(){}  static int i=1; 非靜態內部類不能有靜態成員(方法、屬性)
	    }
	 public static class InnerstaticClass{
	        void InnerstaticClass(){
	            System.out.println("InnerstaticClass");
	          //  System.out.println(out1);out(); 靜態內部類只能夠訪問外部類的靜態成員
	            System.out.println(out2);
	            outstatic();
	        }
	        static void innerstatic(){}  static int i=1;//靜態內部類能有靜態成員(方法、屬性)
	    }
	 public static void main(String args[]){
	       OutClassTest a=new OutClassTest();
	     //創建靜態內部類
	       new OutClassTest.InnerstaticClass().InnerstaticClass();
	     //創建非靜態內部類
	       a.new InnerClass().InnerClass();;
	    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章