java final属性
看到有个程序中有个属性声明是这样的

private static long counter = 0;
private final long id = counter++;

final不是不能更改吗?这里怎么还counter++呢?求解释,谢谢

class Composing {
private static long counter = 0;
private final long id = counter++;
public Composing() {}
}

public class ReferenceCounting13 {
public static void main(String[] args) {
Shared shared = new Shared();
Composing[] composing = { new Composing(shared),
new Composing(shared), new Composing(shared),
new Composing(shared), new Composing(shared)
};

也就是说每次new Composing(shared), 的时候都要初始化一次id属性?
答:
final 声明的是最终变量,方法,或类,一旦创建便不可更改,final声明的最终方法不可被修改,最终类不可被继承!上面id使用final修饰声明的,一旦赋值之后,便不可再原来的值。private final long id = counter++;这句代码的意思是,先把counter的值赋给id,然后在执行counter+1;所以id的值为0,counter的值为1。id是新创建的,以前并没有值,此处只是给他赋值为counter。执行完这句代码之后,便不能再次对它赋值,和自增,减运算!

java final属性相关推荐

  1. java反射设置属性值_Java反射如何有效的修改final属性值详解

    前言 以前写过一篇 Java 反射修改 final 属性值,本文将在这里重新温习一下Java反射如何有效的修改final属性值,下面话不多说了,来一起看看详细的介绍: 假设有个类 class Pers ...

  2. 方法对象java final关键字的用法

    之前一直在查找方法对象之类的问题,今天正好有机会和大家讨论一下. 1.用final关键字设置常数 很多程序设计语言都有自己的方法告知编译器某个数据是"常数".常数重要应用于下述两个 ...

  3. java 对象视图框架_Stripes视图框架Java对象属性验证和prototype.js Ajax的测试

    Stripes视图框架Java对象属性验证,它允许对字段设置是否必须填写,对数字大小进行限制等.我用prototype.js Ajax 将验证后的数据及时地展示出来,下面来看程序. 1.编写User实 ...

  4. java final 初始化_[转]java static final 初始化

    1.static修饰(类变量)一个属性字段,那么这个属性字段将成为类本身的资源,public修饰为共有的,可以在类的外部通过test.a来访问此属性;在类内部任何地方可以使用.如果被修饰为privat ...

  5. java final对象_java面向对象基础_final详细介绍

    一.final关键字 1.final修饰的成员变量,其实就是常量 public class Example01 { public final String userName="小李" ...

  6. 使用反射修改final属性

    情型1:static final属性,无法修改其值. package m5.d7; import java.lang.reflect.Field; public class FieldTest { p ...

  7. final 在java,final 在java中的注意点

    final 在java中的注意点 注意事项慢慢积累 final 类不可被继承,也不能有子类. final class Book{} //class ComBook extends Book{}     ...

  8. fianl属性 java_Java反射如何有效的修改final属性值详解

    前言 以前写过一篇 Java 反射修改 final 属性值,本文将在这里重新温习一下Java反射如何有效的修改final属性值,下面话不多说了,来一起看看详细的介绍: 假设有个类 class Pers ...

  9. Java final与static

    Java final关键词 修饰类 该类不能被继承 修饰方法 该方法不能被重写 修饰变量 该变量只有一次赋值机会 Java static关键词 修饰方法 不能访问外部的非static属性

最新文章

  1. 网络名称空间 实例研究 veth处于不同网络的路由问题
  2. 第14章 结构和其他数据形式 14.12 typedef 简介
  3. oracle里的ols机制,Oracle ASM的AU(Allocation units)分配
  4. 解析IntelliJ IDEA内部设计
  5. ubuntu更换软件源方法和实验成功软件源地址
  6. akshare双均线backtrader
  7. Code Sinppet
  8. 2999元起!苹果悄然发布两款iPad新品 升级至A12处理器
  9. (转载)mysql查询今天、昨天、7天、近30天、本月、上一月数据
  10. 【推荐系统】推荐系统中的图网络模型
  11. [VB.NET]请教一个如何对姓名进行同音字查询?
  12. JavaScript函数思维导图
  13. matlab对信号DTFT,【MATLAB】离散傅里叶变换DTFT和IDTFT
  14. 嵌入式电子钢琴游戏开发设计
  15. python解决控制问题系例之一:解决微分方程-状态方程求解作图问题
  16. Nodejs使用ffi调用so库
  17. 一名中专生的坎坷程序人生
  18. ava.lang.IllegalArgumentException: At least one base package must be specified at org.springframewo
  19. linux下wifi实现
  20. seaborn seaborn色板的使用设置(二)

热门文章

  1. Google推出了Python最牛逼的编辑器,不看后悔一辈子!
  2. 我的代码第一次运行时的样子
  3. 一个C++程序员生产力,大概相当20个C程序员,200个java程序员?
  4. arduino编程时加{}报错_使用Arduino开发板时最常见的10个错误
  5. 用渐变色画圆_详细步骤!用ps画个中秋圆月亮
  6. 离散中多重组合是指_数学系离散数学的几大核心领域
  7. 拥有Mac的你怎么可以不知道Downie,Downie4最新更新「安装与使用」
  8. python多线程有用吗_Python多线程理解
  9. qaxobject控制word到某一行_太简单了!Excel信息导出为每页打印一行,且批量添加同一表头...
  10. 洛谷 深基 第1部分 语言入门 第2章 顺序结构程序设计