🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# final 属性 --- ## 问题 看下面程序片段哪里会有编译错误?如果有,如何修改? ``` public class Test { private final int x; // 第1种改法 // private final int x; private static final int y = 0; // 注意静态常量的命名规范:一般情况是用全部大写字母来命名, // 如果多个字母则用_连接; // 第2种改法 /*public Test() { x = 1; }*/ } ``` ## 结果 第2行有编译错误。有两种修改方法,第一种是在声明的同时为x赋值,第2中方法是在每一个构造方法中为x赋值; ## 结论 #### final修饰吧变量后,变量成为常量,不可被修改。final不仅可以修饰属性,也可以修饰方法中的局部变量。当修饰属性时,要么声明的同时赋值,要么在构造方法为其赋值,不能在其它地方对其修改。如果使用final和static同时修饰,则必须在声明的同时赋值,注意final和static同时修饰时的命名规范。