zoukankan      html  css  js  c++  java
  • 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 修饰后,此类不允许被继承。

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

  • 相关阅读:
    用goto做异常处理
    零长度数组的妙用
    DTMF三种模式(SIPINFO,RFC2833,INBAND)
    Myeclipse下的struts2.3.8 配置 保证绝对好用
    Linux内核--内核数据类型
    Linux内核:kthread_create(线程)、SLEEP_MILLI_SEC
    3.4.4 数据预留和对齐(skb_reserve, skb_push, skb_put, skb_pull)
    Linux 2.6内核中新的锁机制--RCU
    Linux中SysRq的使用(魔术键)
    CentOS Linux服务器安全设置
  • 原文地址:https://www.cnblogs.com/devan/p/11496580.html
Copyright © 2011-2022 走看看