Java学习--(十)final关键字

来源:互联网 发布:cal Linux 编辑:程序博客网 时间:2024/06/05 23:05

1.final 相当于const,定义一个常量,编译时不能确定值,运行时确定。例子

import java.util.*;...private static Random rand =new Random(38);//38是种子,//注意这里的rand是static型的。public static final int VALUE_ONE=rand.nextInt(2);//0-2的随机数

该例可以运行(不完整) ,说明static final可以在运行时才赋值。

2.Blank final

public class BlandFinal{    private final int j;//blank final    BlankFinal(){        j=2;        }    public static void main(String[] args){    //...    }}

blank final 必须在使用前赋值,所以一定要在构造函数中赋值,包括方法也是一样

final method是不能重载的。

类中所有private的method都是隐形的final,因为我们不能在类外使用这些方法,同样就不能重载他们。

class WithFinals{       private final void f(){        System.out.println("WithFinals.f()");}//add final specifier but it //doesn't give f() any extra meaning       private void g(){       System.out.println("WithFinals.g()");}     }    class OverridingPrivate1 extends WithFinals{      public final void f(){        System.out.println("OverrindingPrivate.f()");}      public void g(){        System.out.println("OverrideingPrivate.g()");}     }public class FinalOverridingIllusion {    public static void main(String[] args){          OverridingPrivate1 op1=new OverridingPrivate1();            op1.f();            op1.g();         WithFinals op=new op1;         //op.f();提示op中的f()不可见    }}
0 0
原创粉丝点击