zoukankan      html  css  js  c++  java
  • 11.2 final变量

    1、概述
      a、final关键字可用于变量声明,一旦该变量设定,就不可以在改变该变量的值。通常,由final定义的变量为常量。
      b、final关键字定义的变量必须在声明是对其进行赋值操作。
      c、final出了可以修饰基本数据类型的常量,还可以修饰对象引用。
      d、在被定义为final的常量时需要使用大写字母命名,并且中间使用下划线进行连接,这是Java中的编码规则。
      e、在Java中定义全局变量,通常使用public static final修饰,这样的常量只能在定义时被赋值。

    例11.4

     1 package com.lzw;
     2 import static java.lang.System.out;
     3 import java.util.Random;
     4 
     5 class Test{
     6     int i = 0;
     7 }
     8 
     9 public class FinalData {
    10     static Random rand = new Random();
    11     private final int VALUE_1 = 9; //声明一个final常量
    12     private static final int VALUE_2 =10;  //声明一个final、static常量
    13     private final Test test = new Test();  //声明一个final引用
    14     private Test test2 = new Test();  //声明一个不是final的引用
    15     private final int[] a = {1,2,3,4,5,6};   //声明一个定义为final的数据
    16     private final int i4 = rand.nextInt(20);
    17     private static final int i5 = rand.nextInt(20);
    18     public String toString() {
    19         return i4 + " " + i5 + " ";
    20     }
    21     
    22     //主方法
    23     public static void main(String[] args) {
    24         FinalData data = new FinalData();
    25         //可以对指定为final的引用中的成员变量赋值,但不能将定义为final的引用指向其它引用
    26 //        data.test = new Test();
    27 //        data.VALUE_2++;
    28         
    29         //不能改变定义为final的常量值
    30         data.test2 = new Test();
    31         
    32         for(int i=0;i<data.a.length;i++) {
    33             //不能对定义为final的数组赋值
    34 //            a[i] = 9;   
    35         }
    36         
    37         out.println(data);
    38         out.println("data2");
    39         out.println(new FinalData());
    40         out.println(data);
    41     }
    42 }
    View Code

    2、通常一个被定义为final的对象引用只能指向唯一一个对象,不可以将它在指向其它对象,但是一个对象本身的值却是可以改变的,那么为了使一个常量真正做到不可更改,可以将常量声明为static final。

    例11.5

     1 package com.lzw;
     2 import java.util.Random;
     3 import static java.lang.System.out;
     4 
     5 public class FinalStaticData {
     6     private static Random rand = new Random();   //实例化一个Random类对象
     7     private final int a1 = rand.nextInt(10);      //随机产生0~10之间的随机数赋予定义为final的a1
     8     private static final int a2 =rand.nextInt(10);
     9     
    10     //主方法
    11     public static void main(String[] args) {
    12         //实例化一个对象
    13         FinalStaticData fdata = new FinalStaticData();  
    14         out.println("重新实例化调用a1的值:" + fdata.a1);  //调用定义为final的a1
    15         out.println("重新实例化调用a2的值:" + fdata.a2);  //调用定义为static final的a2
    16         
    17         //实例化另外一个对象
    18         FinalStaticData fdata2 = new FinalStaticData(); 
    19         out.println("重新实例化调用a1的值:" + fdata2.a1);  //调用定义为final的a1
    20         out.println("重新实例化调用a2的值:" + fdata2.a2);  //调用定义为static final的a2
    21     }
    22             
    23 }
    View Code

  • 相关阅读:
    vue中打印 使用mapState映射 vuex state 中的数据 结果显示 [__ob__: Observer]的问题
    css里面鼠标的形状-----》easyui哪点事
    多张表进行关联查询---->删除某个数据的时候出现还有子记录的提示
    MyEclipse迁移过程中Tomcat版本不一致的解决办法
    Easyui里面动态设置输入框的可见性
    PL/SQL那点事-->修改Oracle数据库里面的字段长度
    PL/SQL那点事-->SqlSession operation; SQL []; ORA-01722: 无效数字
    PL/SQL数据开发那点事
    PL/SQL数据库开发那点事
    java类型与jdbc类型对应表
  • 原文地址:https://www.cnblogs.com/studycode/p/9534866.html
Copyright © 2011-2022 走看看