JAVA變量的種類

   蔡學鏞老師的這篇文章從宏觀的角度爲變量的種類做了一個總整理,希望可以幫助大家學習和了解JAVA變量有所幫助
         根據聲明方式來爲變量分類
             
根據聲明方式詳細來區分,Java的變量有七種,下面的程序代碼展示了這七種變量的聲明方式:
                 Class Myclass {
                        static int a;
                        int b;
                        public static void myMethod(int c)  {
                              try {
                        int d;
                              } catch(Exception e) {
                           }
                   }
                    MyClass(int f) {
                        int[]g = new int[100];
                        }
                     }
         class variable:聲明在class內,method之外,且使用static修飾的變量,例如上面程序代碼的a.
         
instance variable:聲明在class內,method之外,且未使用static修飾的變量,例如上面程序的b.
         
method parameter:聲明在method小括號內的變量,例如上面程序代碼的c.
         
狹義的局部變量(local variable):聲明在method內的變量,例如上面程序代碼的d和g.
         
exception-handler parameter:聲明在catch小括號內的變量,例如上面程序代碼的e.
        
 constructor parameter:聲明在constructor小括號內的變量,例如上面程序代碼的f.
         
數組元素(array element):數組的元素值沒有識別名稱,必須透過數組和索引值(index)來識別.例如上面
                                                 程序代碼的g[0].
         
         
根據變量內存來分類
             根據變量內存位置來區分,Java的變量有兩種,包括了:
          heap variable:佔用的內存在heap中,這類變量包括了class variable,instance variable,array component,
          即前面程序的a,b,g[0].這類變量會自動被JVM初始化默認值.
          stack variable:通常廣義的局部變量(pan-local variable),其佔的內存在stack中,這類變量包括了狹義的
          局部變量,method parameter,exception-handler parameter,constructor parameter,即前面程序 的c,d,e,f.狹義   的局部變量不會被JVM初始化成默認值,使用者必須自行初始化該變量,但是parameter類(包括method parameter,exception-handler parameter,constructor parameter)會被JVM初始化成傳入值.
        
根據使用方式來爲變量分類
            根據使用方式,只要分三類即可,分別是:
        class variable:即上例的a.
        instance variable:即上例的b.
        廣義的局部變量:包含上例的c,d,e,f.這四者的差別很小,直接歸爲一類.
        至於"數組元素"(array component)則不在此三類中,但是"數組元素"並不常被注意到,爲它多分出一類的用處不大.我通常將數組視爲對象,將array component視爲對象的instance variable.   <蔡學鏞>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章