本文共 513 字,大约阅读时间需要 1 分钟。
举例:
class A{ final string a = “aabbcc”; class B{ print(a); }}
类A中的内部类B的函数print()调用了定义在A中的参数a,这个时候如果不加final,就会出错。因为内部类被编译的时候会生成一个单独的内部类的.class文件,这个文件并不与外部类在同一class文件中
注意:
如果变量不被final修饰的话,内部类在使用时可以改变变量的值,这样就违背数据一致性的原则。因为从编程人员的角度来看他们是同一个东西,如果编程人员在程序设计的时候在内部类中改掉参数的值,但是外部调用的时候又发现值其实没有被改掉,这就让人非常的难以理解和接受,为了避免这种尴尬的问题存在,所以编译器设计人员把内部类能够使用的参数设定为必须是final来规避这种莫名其妙错误的存在转载地址:http://juxii.baihongyu.com/