原文转自:http://blog.csdn.net/zhangjk1993/article/details/24196847

 1 public class FinalTest1 {
 2     //-----------------成员变量------------------//
 3     //初始化方式一,在定义变量时直接赋值
 4     private final int i = 3;
 5
 6     //初始化方式二,声明完变量后在构造方法中为其赋值
 7     //如果采用用这种方式,那么每个构造方法中都要有j赋值的语句
 8     private final int j;
 9
10     public FinalTest1() {
11         j = 3;
12     }
13
14     //如果取消该构造方法的注释,程序就会报错,因此它没有为j赋值
15     /*public FinalTest1(String str) {
16
17     }*/
18
19     //为了方便我们可以这样写
20     public FinalTest1(String str) {
21         this();
22     }
23
24     //下面的代码同样会报错,因为对j重复赋值
25     /*public FinalTest1(String str1, String str2) {
26         this();
27         j = 3;//The final field j may already have been assigned
28     }*/
29
30
31     //初始化方式三,声明完变量后在构造代码块中为其赋值
32     //如果采用此方式,就不能在构造方法中再次为其赋值
33     //构造代码块中的代码会在构造函数之前执行,如果在构造函数中再次赋值,
34     //就会造成final变量的重复赋值
35     private final int k;
36
37     {
38         k = 4;
39     }
40
41     //-----------------类变量(静态变量)------------------//
42     //初始化方式一,在定义类变量时直接赋值
43     public final static int p = 3;
44
45     //初始化方式二,在静态代码块中赋值
46     //成员变量可以在构造函数中赋值,但是类变量却不可以。
47     //因此成员变量属于对象独有,每个对象创建时只会调用一次构造函数,
48     //因此可以保证该成员变量只被初始化一次;
49     //而类变量是该类的所有对象共有,每个对象创建时都会对该变量赋值
50     //这样就会造成变量的重复赋值。
51     public final static int q;
52
53     static {
54         q = 3;
55     }
56 }

转载于:https://www.cnblogs.com/DreamDrive/p/5413484.html

Java中final变量的初始化方式相关推荐

  1. java类成员变量初始化_探讨Java类中成员变量的初始化方式

    在 Java 里定义一个类的时候,很多时候我们需要提供成员变量,成员变量专业叫法是 Memeber Variable 或者干脆的叫作 Field. 根据是否使用 static 关键字修饰,可以将 Fi ...

  2. Java中关于数组的初始化方式

    在讲之前,先做一个选择题测试一下:关于数组的初始化方式,以下选项正确的有哪些( ) A.int[] arr = new int[5]; B.int[] arr = {10,20,30}; C.doub ...

  3. java 中final修饰的变量_java中final修饰符的使用方法

    本文为大家分享了java中final修饰符的使用,供大家参考,具体内容如下 1.final修饰符的用法: final可以修饰变量,被final修饰的变量被赋初始值之后,不能对它重新赋值. final可 ...

  4. C++类中成员变量的初始化有两种方式

    C++类中成员变量的初始化有两种方式: 构造函数初始化列表和构造函数体内赋值.下面看看两种方式有何不同. 成员变量初始化的顺序是按照在那种定义的顺序. 1.内部数据类型(char,int--指针等) ...

  5. java中final的意义

    转载自 https://blog.csdn.net/hikvision_java_gyh/article/details/8964541 1.如果一个数据既是static又是final,那么它会拥有一 ...

  6. 转 Java中final、finally、finalize的区别与用法

    Java中final.finally.finalize的区别与用法 1.简单区别: final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承. finally是异常处理语句结构 ...

  7. java中静态变量和静态方法分别有什么特点?

    java中静态变量和静态方法分别有什么特点? 悬赏分:0 - 解决时间:2006-4-10 10:28 提问者: vv_clear - 二级 最佳答案 为什么问了两次?再贴上另一篇 Thinking: ...

  8. java中final关键字的使用

    final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰  类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...

  9. JAVA中Final的用法

    JAVA中Final的用法 1. 修饰基础数据成员的final 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改.如java.lang.Math类中的 ...

最新文章

  1. SAP MM 物料主数据MRP2 视图Rounding Value字段
  2. python_字符串有时可以比较大小哦!
  3. lintcode: 爬楼梯
  4. 如何kill掉tomcat服务
  5. 云计算,移动云计算,虚拟化技术概念以及相关技术注解
  6. 周报_2012第51周(2012/12/16-2012/12/22)
  7. 我的C3P0的一些配置心得
  8. JDK中的Atomic包中的类及使用
  9. 自己电脑访问跳板机里面的集群中的web ui界面
  10. 记一次.net core 集成vue 实践
  11. 共享共建会让中国的5G加速吗?
  12. Mac终端神器zsh
  13. WCMS V9方向说明
  14. http协议报文体_http协议详解之响应报文 3
  15. 图像处理四:霍夫变换
  16. [Contest20180116]随机游走
  17. openstack nova后端使用ceph rbd(增加在线迁移live_migrate和快照snapshot功能)
  18. sm4 的s盒_国密SM4算法
  19. Android 自定义带拼音Textview 带音调
  20. JspStudy环境下tomcat服务器无法正确运行servlet的一种解决方法

热门文章

  1. Nature重磅发现:神经活动影响人类寿命!
  2. 2019与下一个十年:我们将要放弃的和将要拥抱的
  3. 不平等加剧与问责机制:纽约大学AI Now研究所2018 AI现状报告 | 报告
  4. 宇宙和你,本质上其实只是个八维数字?
  5. 硬核!如何全面系统地自学 Java ?(必看)
  6. Python 之父立 Flag:明年要把 Python 速度提高 2 倍!
  7. “32 位应用已死!”
  8. ElasticSearch基础知识整理
  9. 安卓constraintLayout中app:srcCompat设置的图片显示不出来
  10. 澳大利亚铁路网络漏洞多多 极易遭攻击