全局變量:Java程序中,不能在全部類以外定義全局變量,只能經過在一個類中定義公用、靜態的變量來實現一個全局變量。例如:ClassGlobalVar{public static global_var;}在類GlobalVar中定義變量global_var爲public static,使得其它類能夠訪問和修改該變量。Java對全局變量進行了更好的封裝。而在C和C++中,依賴於不加封裝的全局變量經常形成系統的崩潰。安全
全局變量是類中的成員變量,存放在堆區。函數
作一個類用靜態屬性保存它:spa
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就能夠提早知道這些信息。code
最好不要使用全局變量。blog
另外原型
1.頭文件:C、C++中用頭文件來聲明類的原型以及全局變量、庫函數等,在大的系統中,維護這些頭文件是很困難的。而Java不支持頭文件,類成員的類型和訪問權限都封裝在一個類中,運行時系統對訪問進行控制,防止對私有成員的操做。同時,Java中用import語句來與其它類進行通信,以便使用它們的方法。class
2.結構和聯合:C、C++中的結構和聯合中全部成員均爲公有,這就帶來了安全性問題。Java中不包含結構和聯合,全部的內容都封裝在類中。test
3.預處理:C、C++中用宏定義來實現的代碼給程序的可讀性帶來了困難。在Java中,不支持宏,它經過關鍵字final來聲明一個常量,以實現宏定義中普遍使用的常量定義。import