Java常見關鍵字辨析

 Java常見關鍵字辨析:final,static,super,this

一、final

     1)修飾class(類):

                            表示此類不可被繼承了

     2)修飾method(方法)

                            表示此方法方法不可被重寫(@override)了

     3)修飾variable(變量)

                             表示此變量的值之後不可被改變了,常用於修飾不可變的常量

         注:final字面意思是“最後”、“不可更改”的意思,結合意思記憶更方便。

 

二、static (第二、三法常用)

     1)修飾class(類):

                        (不常用)只可用於修飾內部類,普通類不允許這麼聲明

     2)修飾method(方法)

                         static方法是屬於類所有(對象間共享),而不是某個對象。不需創建對象,可以使用類名進行調用此方法。

               

              (程序執行時,類的字節碼被加載到內存中,類沒有創建對象時,類變量已經被分配內存,實例變量在創建具體對象時才分配內存空間。)

            

 

      3)修飾variable(變量)

                         類似於2),變量是類級別的共享,不需創建對象,但是變量的值的變化是整體性的,也就是說,對象A對某static變量的值進行操作而改變了,那麼對象B操作的就是改變後的static變量。

                        

                 注:使用static修飾的代碼塊叫做靜態代碼塊靜態代碼塊在JVM加載類的時候就先被執行,無論它們被放在什麼位置,它們都是先被執行,然後纔是正常的代碼塊被執行。可以有多個靜態代碼塊,它們會依次被JVM按照出現順序執行,每個代碼塊只會被執行一次。

                     靜態方法中不能有this和super關鍵字出現

                    

      

三、super:(指對父類的引用)          

               1)與Class相關(父類,也稱超類):

              通過super(參數1,參數2,……,參數n),調用父類構造函數;

               2)與Method(方法)相關

              super.Methord(參數1,參數2,……,參數n)調用父類被重寫的方法;

                3)與variable(變量)相關

                    super.variable,調用父類的變量

     注:super必須用在子類構造方法的第一行;

            當父類沒有不帶參數的構造方法時,子類需要使用super來顯式地調用父類的構造方法,super指的是對父類的引用

 

四、this:(對當前對象的引用

            1)Class相關

                          this(參數1,參數2,……,參數n),這是普通的構造函數,只能是構造函數(其他)調用構造函數(this),普通函數無法調用構造函數。

            2)Method(方法)相關

                         調用當前對象的方法

            3)Variable(變量)相關

                        調用當前對象的變量

       注:this();和super();顯式的調用構造函數只能放在構造第一行;

this.method..();super.method..();可以放在任何地方當作一個普通的方法使;

構造器和方法使用關鍵字this有很大的區別。方法引用this指向正在執行方法的類的實例。靜態方法不能使用this關鍵字,因爲靜態方法不屬於類的實例,所以this也就沒有什麼東西去指向。構造器的this指向同一個類中,不同參數列表的另外一個構造器,

         

     

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章