Final对象

常量指不能改变的量。 在Java中用final标志,声明方式和变量类似:

final double PI = 3.1415927;

虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。

 

关于常量的初始化问题:

package Main;

public class Main_final {
    
    // 常量第一种初始化方式(静态与非静态)
    public static final User user1 = new User();
    public final User user2 = new User();
    
    // 常量第二种初始化方式(静态)
    public static final User user3;
    static {
        user3 = new User();
    }
    
    // 常量第三种初始化方式(非静态)
    public final User user4;
    public Main_final(){
        user4 = new User();
    }

    public static void main(String[] arg){
        // 如果常量是一个对象,那么不变的是对象引用,对象本身是可变的。
        user1.setUserID(1);
        user1.setUserName("1");

        Main_final main_final = new Main_final();
        main_final.user2.setUserID(2);
        main_final.user2.setUserName("2");
        
        user3.setUserID(3);
        user3.setUserName("3");
        
        main_final.user4.setUserID(4);
        main_final.user4.setUserName("4");
        
        // 常量对象指向另一个对象时,失败
        /*user1 = new User();*/
        
        System.out.println("user1: " + user1.getUserID());
        System.out.println("user2: " + main_final.user2.getUserID());
        System.out.println("user3: " + user3.getUserID());
        System.out.println("user4: " + main_final.user4.getUserID());
    }
    
}

 

posted @ 2014-04-17 11:47  三句对白  阅读(1313)  评论(0编辑  收藏  举报