天天看點

5-2 Java 中的 static 使用之靜态變量 ;;Java 中的 static 使用之靜态方法;;Java 中的 static 使用之靜态初始化塊...

1.Java 中被 static 修飾的成員稱為靜态成員或類成員。它屬于整個類所有,而不是某個對象所有,即被類的所有對象所共享。靜态成員可以使用類名直接通路,也可以使用對象名進行通路。當然,鑒于他作用的特殊性更推薦用類名通路

使用 static 可以修飾變量、方法和代碼塊。

5-2 Java 中的 static 使用之靜态變量 ;;Java 中的 static 使用之靜态方法;;Java 中的 static 使用之靜态初始化塊...
5-2 Java 中的 static 使用之靜态變量 ;;Java 中的 static 使用之靜态方法;;Java 中的 static 使用之靜态初始化塊...

2. 與靜态變量一樣,我們也可以使用 static 修飾方法,稱為靜态方法或類方法。其實之前我們一直寫的 main 方法就是靜态方法。靜态方法的使用如:

5-2 Java 中的 static 使用之靜态變量 ;;Java 中的 static 使用之靜态方法;;Java 中的 static 使用之靜态初始化塊...
5-2 Java 中的 static 使用之靜态變量 ;;Java 中的 static 使用之靜态方法;;Java 中的 static 使用之靜态初始化塊...

注意:

1、 靜态方法中可以直接調用同類中的靜态成員,但不能直接調用非靜态成員。如:

5-2 Java 中的 static 使用之靜态變量 ;;Java 中的 static 使用之靜态方法;;Java 中的 static 使用之靜态初始化塊...

如果希望在靜态方法中調用非靜态變量,可以通過建立類的對象,然後通過對象來通路非靜态變量。如:

5-2 Java 中的 static 使用之靜态變量 ;;Java 中的 static 使用之靜态方法;;Java 中的 static 使用之靜态初始化塊...

2、 在普通成員方法中,則可以直接通路同類的非靜态變量和靜态變量,如下所示:

5-2 Java 中的 static 使用之靜态變量 ;;Java 中的 static 使用之靜态方法;;Java 中的 static 使用之靜态初始化塊...

3、 靜态方法中不能直接調用非靜态方法,需要通過對象來通路非靜态方法。如:

5-2 Java 中的 static 使用之靜态變量 ;;Java 中的 static 使用之靜态方法;;Java 中的 static 使用之靜态初始化塊...

3.Java 中的 static 使用之靜态初始化塊

Java 中可以通過初始化塊進行資料指派。如:

5-2 Java 中的 static 使用之靜态變量 ;;Java 中的 static 使用之靜态方法;;Java 中的 static 使用之靜态初始化塊...

   在類的聲明中,可以包含多個初始化塊,當建立類的執行個體時,就會依次執行這些代碼塊。如果使用 static 修飾初始化塊,就稱為靜态初始化塊。

注意:靜态初始化塊隻在類加載時執行,且隻會執行一次,同時靜态初始化塊隻能給靜态變量指派,不能初始化普通的成員變量。  

5-2 Java 中的 static 使用之靜态變量 ;;Java 中的 static 使用之靜态方法;;Java 中的 static 使用之靜态初始化塊...
5-2 Java 中的 static 使用之靜态變量 ;;Java 中的 static 使用之靜态方法;;Java 中的 static 使用之靜态初始化塊...

轉載于:https://my.oschina.net/u/3670318/blog/1533823