final关键字理解:
final英文意思为最终的,告诉编译器我修饰的这个地方是“不能变“, final可以理解为引用的锁定,包括基本类型,方法,对象的引用,用final进行修饰后就相当于锁定这个引用了。
final需求:有时候我们我们写的变量,或者我们写的方法和类,不能被不能被改变;
只是给用户使用特定的方法,例如基本类型中的包装类Integer StringBooealn,好处显而易见,多线程数据共享时候不会变化,保证线程的安全,
final是java中的一个修饰关键字,它可以声明与变量,方法,类经常final与static一起用。
修饰变量:
首先修饰的变量有两类 1:成员变量 2本地变量(方法或者代码块中的变量)
final String a=”hello java”;//此时这个引用a不能指向别的对象,否则就会发生编译错误。
例如:s=new String(“java”);//
被final修饰的成员变量必须要进行初始化,
1:通过声明时候进行初始化,
例如: final Strings=”hello java”;
2:通过构造器进行初始化
例如:
public class Animal{
final String a;
Animal(Stringa)//构造器进行初始化a,此时也就是空final
this.a=a;
}
修饰方法:
final方法不能被继承
例如某一个非final类中有一个被final修饰的方法,该类被继承时其子类不会继承父类的final方法
public class cat extands Animal{
sop(“hello world”);
}
修饰类:
被修饰的类不能被继承,这个类就是最终类,不可能还有孩子;
例如animal类
Publicclass Dog extands Animal{//编译直接出错,
}
注意:final 与引用,对象。 final 所修饰的引用不能指向别的对象,但是final原来指向的对象内容是可以变化的,比如setName(),getName()等