final关键字

final代表了不能修改

final修饰域

  1,构建对象时必须对final修饰的域进行初始化。

  2,初始化之后不能再被修改

  3,final一般用于基本数据类型域,或不可变类的域(如String)

  4,对于可变类的域

复制代码
Class Employee{
    private final StringBuilder evalutions;
    Employee(){
        evaluations = new StringBuilder();
    }
    
    public void giveGoldStar(){
        evaluations.append(LocalDate.now() + ":Gold Star\n");
    }
}
复制代码

 

  如上面代码所示,final只会表示存储在evaluations变量中的对象引用不会再指示其他StringBuilder对象。但这个对象可以更改.

 

final修饰类和方法

  被final修饰的类不能定义子类,同时该类中的方法也被自动定义为了final,但其中的域不会被自动改为final

  被final修饰的方法不能被子类覆盖

  方法和类被声明为final的主要目的是:确保他们不会在子类中改变语义。(待补充,举例String类)

 

posted @   Joey777210  阅读(96)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示