java中final关键字用法小结

xiaoxiao2021-02-28  19

根据上下文,java中final关键字的含义存在着细微的区别,但它通常指的是“不可改变的”不想改变可能有两种理由:设计和效率,由于这两个字差了很远,所以final可能被误用。 以下谈到了使用final的三种用法:数据,方法,和类。


final修饰数据 1,一个永不改变的编译时常量。 2,一个在运行时被初始化的值,而你不希望它被改变。 3,在对常量进行定义的时候,必须对其进行赋值。 4,一个static又是final的域只占据一个不能改变的存储空间。 5,java允许空白 final,所谓空白final是指被声明为final但又未给定初值的域。 6,final修饰参数 java允许在参数列表声明的方式将参数指明为final。这就意味着你无法更改参数引用所指向的对象。例: public class text { public class FinalArguments { void with(final Integer i) { i = 1; //Illegal,i is final } void without(Integer i) { i = 1;// OK } void f(final int i) { //i++; can't change } int g(int i) { return i + 1; }//OK }
final修饰方法 1,把方法锁定,防止任何继承类修改它的含义。 2,效率问题,现版本jvm虚拟机已优化 3,类中所有的private关键字都隐式指为final,可以对private方法增添final修饰词,但并不会增加任何额外的意义。
final修饰类 1,当某个类的整体定义为final时,表明你不打算继承该类,而且也不允许别人这么做,或出于安全的考虑,你不希望它有子类。 例: public class text{ class SmartBrain{} final class Diansaur{ int i= 7; int j= 9; SmartBrain smartBrain = new SmartBrain(); void f(){}; } class FutherDia extends Diansaur{} //error:Cannot extend final class class FutherBra extends SmartBrain{} //ok }

个人简单总结,2017.10.21

转载请注明原文地址: https://www.6miu.com/read-1750066.html

最新回复(0)