网站建设行业咨讯文章,海南新闻最新消息,遵义企业网络推广方案,网站建设配置一#xff0e;Final 修饰成员变量的注意事项
final修饰成员变量#xff0c;该成员变量必须在创建对象之前进行赋值#xff0c;否则编译失败final修饰成员变量#xff0c;固定的不是成员变量拥有的默认值#xff0c;如果固定的是默认值#xff0c;那么将导致被final修饰的…一Final 修饰成员变量的注意事项
final修饰成员变量该成员变量必须在创建对象之前进行赋值否则编译失败final修饰成员变量固定的不是成员变量拥有的默认值如果固定的是默认值那么将导致被final修饰的成员变量的值永远无法修改只能是默认值这也不符合语法规则成员变量的赋值有三种实现方式 定义成员变量的时候手动赋值利用构造器对成员变量进行赋值利用set函数进行赋值也即利用一般的方法进行赋值
4.被final修饰的成员变量只能拥有3中所描述的赋值方法的12。
3为什么不行
解释如1所描述被final修饰的成员变量必须在对象创建之前进行赋值如果方法3可以那么我们知道对象创建后才能调用方法3也就是说成员变量利用方法3进行赋值会导致成员变量的赋值发生在对象创建之后
5.为什么被Final修饰的成员变量必须在对象创建之前进行赋值
理解
被final关键字修饰的东西有一个特点那就是一旦被修饰那么它的值也就终生不变可见final关键字起到了固定的作用既然起到固定那么你就要提前告诉final固定的是谁如果允许被final修饰的成员变量赋值发生在对象创建之后那么对象创建完成后final固定的值还是未可知的
6.final修饰成员变量和final修饰局部变量的区别与联系
1.被final修饰的成员变量与局部变量均具有一旦赋值该值就终身不变
2.被final修饰的成员变量必须要在创建对象之前进行赋值否则会编译失败
但是局部变量可以不赋值但是没有被赋值的局部变量不能够被使用一旦被使用就会编译失败
3.综上一旦决定使用final关键字来修饰成员变量或者局部变量一定要做到提前赋值
二Final修饰成员方法
1.final修饰成员方法该成员方法就不能被子类重写但是仍然可以被子类继承并可以通过子类对象调用该方法
三Final修饰类
1.final修饰类该类便不能被其他类继承但是该类仍然能够创建对象并且可以利用该对象调用该类的成员变量或者成员方法
四Final使用范围
Final关键字可以修饰类类的成员变量类的成员方法成员方法的局部变量等等
但是final关键字不能用来修饰构造方法原因
理解final修饰普通方法将导致子类无法重写该方法而构造方法本身就不能够被子类重写故如果用final修饰如同多此一举