全局變量:Java程序中,不能在所有類之外定義全局變量,只能通過在一個類中定義公用、靜態的變量來實現一個全局變量。例如:ClassGlobalVar{public static global_var;}在類GlobalVar中定義變量global_var為public static,使得其它類可以訪問和修改該變量。Java對全局變量進行了更好的封裝。而在C和C++中,依賴於不加封裝的全局變量常常造成系統的崩潰。
全局變量是類中的成員變量,存放在堆區。
做一個類用靜態屬性保存它:
public class Global{ public static int status; } //調用: if(isSuccess) Global.status = 1; else Global.status = -1; //定義一個公開類,在里面加static 變量。 public class infos{ private infos(){ } public static int PORT = 80; public static String IP = "166.111.166.111"; public static boolean test = true; public static finale String MYNAME="zzz"; //定義中用了finale,就是不能改變指的。 }
在別的class中調用這些變量就是: infos.PORT,infos.IP,infos.test,infos.MYNAME
多個class交互時可以通過改變這些變量的值來傳遞信息。比如 infos.test被別的class改成了false,可能表示某一件事已經失敗或已經做過,其它class就可以提前知道這些信息。
最好不要使用全局變量。
另外
1.頭文件:C、C++中用頭文件來聲明類的原型以及全局變量、庫函數等,在大的系統中,維護這些頭文件是很困難的。而Java不支持頭文件,類成員的類型和訪問權限都封裝在一個類中,運行時系統對訪問進行控制,防止對私有成員的操作。同時,Java中用import語句來與其它類進行通訊,以便使用它們的方法。
2.結構和聯合:C、C++中的結構和聯合中所有成員均為公有,這就帶來了安全性問題。Java中不包含結構和聯合,所有的內容都封裝在類中。
3.預處理:C、C++中用宏定義來實現的代碼給程序的可讀性帶來了困難。在Java中,不支持宏,它通過關鍵字final來聲明一個常量,以實現宏定義中廣泛使用的常量定義。