使用final關鍵字修飾一個引用類型變量時,是引用不能變,還是引用的對象不能變?


使用final關鍵字修飾一個引用類型變量時,是指引用變量不能變,引用變量所指向的對象中的內容還是可以改變的。

測試代碼如下:

 

package reviewTest;

/**
 * @ClassName: FinalTest
 * @Description: 測試final修飾引用類型
 * @author Kingram
 * @date 2018年7月27日
 *
 */
public class FinalTest {

    public static void main(String[] args) {
        
        final StringBuffer a=new StringBuffer("Hello!");
        // a = new  StringBuffer(""); 編譯錯誤,因為final修飾的引用類型變量,引用對象地址不可改變
        a.append("Final"); // 編譯通過,final修飾的引用類型變量,所引用的對象的值可以改變
        method(a);
        System.out.println(a);
    }
    
    // 如果在定義方法參數時希望方法內部不能修改此參數的值,這樣做是無效的,理由同上
    public static void method(final StringBuffer param) {
        param.append("Test");
    }
    
}
/* output: Hello!FinalTest*/

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM