二级域名对网站帮助,dedecms更改网站logo,自己做网站,夫妻网络网站建设可能使用到final的情况有3种#xff1a;数据、方法和类。一、final数据对于基本类型#xff0c;final使数值恒定不变#xff1b;而对于对象引用#xff0c;final使引用恒定不变。一旦引用被初始化指向一个对象#xff0c;就无法把它改为指向另一个对象。然而#xff0c;对…可能使用到final的情况有3种数据、方法和类。一、final数据对于基本类型final使数值恒定不变而对于对象引用final使引用恒定不变。一旦引用被初始化指向一个对象就无法把它改为指向另一个对象。然而对象本身却是可以被修改的。class Value{int i;public Value(int i){this.ii;}}public class FinalData{private final int valueOne1;private int valueTwo2;private final Value v1new Value(11);private Value v2new Value(22);public static void main(String[] args){//! valueOne3; 错误静态不能更改valueTwo3; //可以更改//! v1new Value(33); 不可更改引用v1.i1; //可以更改内容v2new Value(33); //非final可以更改引用}}注带有恒定初始值(即编译器常量)的final static 基本类型全用大写字母命名并且字与字之间用下划线隔开。public static final int VALUE_ONE3;必须在域的定义处或者每个构造器中用表达式对final进行赋值这正是final域在使用前总是被初始化的原因所在。二、final方法使用final方法的原因是把方法锁住以防任何继承类修改它的含义这是出于设计的考虑想要确保在继承中使方法行为保持一致并且不会被覆盖。类中所有的private方法都隐式地指定为是final的。由于无法取用final方法所以也就无法覆盖它。class WithFinals{private final void f(){print(Hello World);}private void g(){ print(WithFinals.g());}}class OverridingPrivate extends WithFinals{private final void f(){ print(OverridingPrivate.f());}private void g(){ print(OverridingPrivate.g())}}class OverridingPrivate2 extends OverridingPrivate{public final void f(){ print(OverrindingPrivate2.f())}public void g(){ print(OverridingPrivate2.g())}}public class FinalOverriding{public static void main(String[] args){OverridingPrivate2 op2new OverridingPrivate2();op2.f();op2.g();//向上转型OverridingPrivate op1op2;//但是你不能调用下面的方法//! op1.f();//! op1.g();//向上转型WithFinals wfop2;//同样不能调用下面的方法//!wf.f();//!wf.g();}}/* OverridingPrivate2.f() OverridingPrivate2.g() */“覆盖”只有在某方法是基类的接口的一部分时才会出现。即必须能将一个对象向上转型为它的基本类型并调用相同的方法。如果某方法为private它就不是基类的接口的一部分。它仅是一些隐藏于类中的程序代码只不过是具有相同的名字。如果在导出类中以相同的名称生成一个public、protected或包访问权限方法那么该方法并没有覆盖基类的方法仅是生成了一个新的方法。三、final类当某个类的整体定义为final时就表明了你不打算继承该类而且也不允许别人这样做。final class Demo{int i1;final int j2;void f(){}}final类不能被继承。final类的域可以根据个人意愿选择是或者不是final然而由于final类禁止继承所以final类中的所有方法都隐式指定为final的因为无法覆盖它们。在final类中可以给个方法添加final修饰词但这不会增添任何意义。PS总结自《Thinking in Java Fourth Edition》
相关文章: