[JAVA][從0開始的JAVA隨筆]靜態(static)屬性的使用方法及註意事項
阿新 • • 發佈:2018-02-02
所有 輸出 str out test post java 無法 set
除了內部類之外,類一般不能具有靜態屬性。
如下定義了一個外部類Static_test和一個內部靜態類Static_class:
class Static_test{ Static_test(){ s_int = 1; } public static int s_int; public static void s_func(){ System.out.println("s_int = "+s_int); } }
public class Hello{ Hello(){ }public void seta(int num){ a = num; } public void setb(int num){ b = num; } public void showa(){ System.out.println("a = "+a); } public void showb(){ System.out.println("b = "+b); } public static int a; public int b;static class Static_class{ Static_class(){ s_int = 2; } public static int s_int; public static void s_func(){ System.out.println("s_int = "+s_int); } } public static void main(String[] args){ Hello h1= new Hello(); Hello h2 = new Hello(); System.out.println("h1:"); h1.showa(); h1.seta(4); h1.setb(2); h1.showb(); System.out.println("h2:"); h2.showa(); h2.setb(3); h2.showb(); System.out.println("h:"); System.out.println("a = "+Hello.a); Static_test st = new Static_test(); Static_class sc = new Static_class(); Static_test.s_func(); Static_class.s_func(); } }
輸出:
調用外部類及內部類的靜態成員時,只能使用 [類名.成員名] 或 [成員名] 的方式調用,無法使用對象來調用靜態成員。
靜態成員歸類所有,所有實例對象調用的靜態成員都指向類本身的靜態成員,若靜態成員被修改,則所有對象調用時得到的都是修改之後的靜態成員。
[JAVA][從0開始的JAVA隨筆]靜態(static)屬性的使用方法及註意事項