zoukankan      html  css  js  c++  java
  • final关键字的使用

    一:final修饰的变量

      1.被final修饰的变量必须显示指定初始值。指定初始值的方法有三种。

        1.定义该变量时直接指定。

        2.在非静态代码块中指定该变量的初始值

        3.在构造器中指定该变量的初始值

      2.被final修饰的类变量同样时必须显示指定初始值。指定的方法有两种。

        1.定义该变量时直接指定。

        2.在静态代码块中指定该变量的初始值

    注意:本质上final修饰的实例变量初始化是在构造器中进行的,以上三种方法的本质是一样的。而final修饰的类变量初始化本质上是在静态代码块中进行的。

     1        class Price {
     2         final static Price instance = new Price(2.8);
     3         final static double initPrice = 20;
     4         double currentPrice;
     5         public Price(double discount){
     6             currentPrice = initPrice - discount;
     7         }
     8     }
     9     public class PriceTest{
    10         public static void main(String[] args) {
    11             System.out.print(Price.instance.currentPrice);
    12             Price p = new Price(2.8);
    13             System.out.print(p.currentPrice);
    14         }
    15     }
    16 此时输出的是17.2,17.2
    View Code
        class Price {
            final static Price instance = new Price(2.8);
            static double initPrice = 20;
            double currentPrice;
            public Price(double discount){
                currentPrice = initPrice - discount;
            }
        }
        public class PriceTest{
            public static void main(String[] args) {
                System.out.print(Price.instance.currentPrice);
                Price p = new Price(2.8);
                System.out.print(p.currentPrice);
            }
        }
    
    此时输出的是-2.8,17.2
    View Code

    如果定义Final类型的变量(不管是类变量,实例变量,还是局部变量)时指定了初始值,而且该初始值可以在编译的时候就被确定下来(基本数据类型的变量),则系统不会在初始化块中对该类变量赋初始值,而是在类定义中直接使用该值。此时这个变量本质上是一个“宏变量”。除了直接赋值的情况外,如果被赋的表达式只是基本的算术运算表达式或字符串连接运算,没有访问普通变量,调用方法,java编译器同样会将这种final变量当成“宏变量处理”。

  • 相关阅读:
    Linux高并发内核优化-TougheRadius
    Zabbix 4.0 配置邮件报警功能
    Zabbix Agent 4.0 Windows 安装配置
    zabbix4.0前端个性化设置
    zabbix 4.0中文图形界面乱码问题
    Zabbix4.0系统告警“More than 75% used in the configuration cache”
    Zabbix4.0配置SNMP监控
    Zabbix4.0 SNMP安装
    Zabbix4.0添加cisco交换机基本监控步骤
    深入.NET框架
  • 原文地址:https://www.cnblogs.com/zhlblogs/p/9084473.html
Copyright © 2011-2022 走看看