博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java知识:变量在内部类中被使用的话必须在内部类外部声明为final
阅读量:4096 次
发布时间:2019-05-25

本文共 513 字,大约阅读时间需要 1 分钟。

  • 内部类中使用但未声明的任何局部变量必须在内部类的正文之前明确分配
  • Java匿名内部类的方法中用到的局部变量都必须定义为final
  • 在JVM中,内部类不是直接调用方法的参数,而是内部类将传进来的参数通过自己的构造器备份到了自己的内部,自己内部的方法调用的实际是自己的属性而不是外部类方法的参数

举例:

class A{
final string a = “aabbcc”; class B{
print(a); }}

类A中的内部类B的函数print()调用了定义在A中的参数a,这个时候如果不加final,就会出错。因为内部类被编译的时候会生成一个单独的内部类的.class文件,这个文件并不与外部类在同一class文件中

注意:

如果变量不被final修饰的话,内部类在使用时可以改变变量的值,这样就违背数据一致性的原则。因为从编程人员的角度来看他们是同一个东西,如果编程人员在程序设计的时候在内部类中改掉参数的值,但是外部调用的时候又发现值其实没有被改掉,这就让人非常的难以理解和接受,为了避免这种尴尬的问题存在,所以编译器设计人员把内部类能够使用的参数设定为必须是final来规避这种莫名其妙错误的存在

转载地址:http://juxii.baihongyu.com/

你可能感兴趣的文章
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>
XHProf-php轻量级的性能分析工具
查看>>
PHP7新特性 What will be in PHP 7/PHPNG
查看>>
比较strtr, str_replace和preg_replace三个函数的效率
查看>>
ubuntu 下编译PHP5.5.7问题:configure: error: freetype.h not found.
查看>>
PHP编译configure时常见错误 debian centos
查看>>
configure: error: Please reinstall the BZip2 distribution
查看>>
OpenCV gpu模块样例注释:video_reader.cpp
查看>>
【增强学习在无人驾驶中的应用】
查看>>
《python+opencv实践》四、图像特征提取与描述——29理解图像特征
查看>>
《python+opencv实践》四、图像特征提取与描述——30Harris 角点检测
查看>>
《python+opencv实践》四、图像特征提取与描述——31 Shi-Tomasi 角点检测& 适合于跟踪的图像特征
查看>>
OpenCV meanshift目标跟踪总结
查看>>
人工神经网络——神经元模型介绍
查看>>
人工神经网络——感知器介绍
查看>>
人工神经网络——反向传播算法(BackPropagation)
查看>>
进程的地址空间概述
查看>>
Windows 窗口底层原理
查看>>
一种函数指针的运用
查看>>