final关键字的特殊使用

54 阅读1分钟

微信技术群:Day9884125

final修饰变量

   final修饰变量的时候,这个变量就是常量。java中变量有基本数据类型和引用数据类型两种,修饰基本数据类型,基本数据类型的值不能发生改变。对于引用类型,则表示引用地址不能发生改变,而对象的内容是可以改变的。

public class User{
    private String name;
    public User(String name){
        this.name = name;
    }
    
    public String getName(){
        return name;
    }
    
    public void setName(String name){
        this.name = name;
    }
    
    @Override
    public String toString(){
        return "User{"+
                "name-'"+ name +'\''+
                '}';
    }
}

   我们用final关键字修饰User引用对象user,然后将user指向一个新的对象,会发生报错,而修改name的值,则正常。

public class UserTest{
    public static void main(String[] args){
        final User user = new User("zhangsan");
        //user = new User("lisi");    报错cannot assign a value to final variable 'user'
        user.setName("lisi");//可以正常赋值
        System.out.println(user);//打印出的user的name值lisi
    }
}