java 关键字 final

final:最终的,确保使用前是被赋值得,一旦赋值后不可修改。

 

 1  数据

  ①局部变量

    基本数据类型:

      可以先定义后赋值,但要保证在使用前是已被赋值的,一旦赋值后不可修改;

    引用数据类型:

      可以先定义后赋值,但要保证在使用前是已被赋值的,一旦赋值后不可修改;

      引用内容不可修改,但备用用的对象内容可以被修改;

  ②成员变量

      必须保证成员变量在使用前被赋值;

      成员变量赋值的方式有两种,1声明变量时赋值,2构造函数中赋值;

    public static void main(String[] args) {
        
        //局部变量
        //①基本数据类型
        final int val;//先定义
        // val = val + 1;//报错没有赋值,无法使用
        val = 7 ;//再赋值
        
        //②引用数据类型
        final Score score = new Score("Jack",98,95,90);
        score.toString();
        //score = new Score("Tom",77,89,99);//引用无法再次修改
        score.name = "Tom";
        score.toString();
        
    }

 

2  方法参数

  在方法参数上做 final 修饰后,整个方法体内参数值不允许被改变。

public Score(final String name,int yuWen, int shuXue, int yingYu) {
        //name = "jack";//报错
        this.name = name;
        this.yuWen = yuWen;
        this.shuXue = shuXue;
        this.yingYu = yingYu;
    }

 

3  方法

  在方法上做 final 修饰后,被继承的子类无法覆盖此方法,可以被继承。

  不可以修饰构造方法。

3 类

  在类上做 final 修饰后,此类不允许被继承。

  违背了面向对象编程中的 “ 继承 ”

 

posted @ 2019-09-10 14:27  Devan.Yan  阅读(133)  评论(0编辑  收藏  举报