码迷,mamicode.com
首页 > 其他好文 > 详细

关键字 final

时间:2016-03-26 15:32:18      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:

package com.zyw.reusableClass;

import java.util.Random;

/**
 * Created by zyw on 2016/3/26.
 * from think in java
 * final数据
 * 1.static final VALUE_THREE 做为编译期常量 大写字母命名,字与字下划线分开
 * 2.不能因为数据为final就认为在编译时其值固定
 * 3.final引用 表示引用不能指向新的对象 数组就是一种引用
 */
public class FinalData {
    private static Random random=new Random(47);//private  Random random=new Random(47);
    // Non-static field ‘random‘ cant be referenced from a static context
    private static final int VALUE_TWO=99;
    private static final int VALUE_THREE=39;
    public static final int i4= random.nextInt(20);
    static final int INT_5=random.nextInt(20);
    final int b=random.nextInt();
    final Value value=new Value(11);
    private final int[] a={1,2,4,5};
    public static void main(String args[]){
        FinalData finalData=new FinalData();
        FinalData finalData2=new FinalData();
        finalData.value.i++;
        for(int i=0;i<finalData.a.length;i++){finalData.a[i]++;}//finalData.value=new Value(22); error
        System.out.println(FinalData.i4);
        System.out.println(FinalData.INT_5);
        System.out.println(finalData.a);
        System.out.println(finalData2.a);
    }
}
class Value{
    int i;
    public Value(int i){this.i=i;}
}
package com.zyw.reusableClass;

/**
 * Created by zyw on 2016/3/26.
 * blank final 只要保证在使用前,被初始化即可
 * 因此一个类的final域可以根据对象有所不同,又保持其恒定不变的特性
 */
public class BlankFinal {
    private final Poppet p;

    public BlankFinal(int i) {
        this.p = new Poppet(i);
    }
    public static void main(String args[]){
        BlankFinal blankFinal=new BlankFinal(10);
        System.out.println(blankFinal.p.toString());
    }
}
class Poppet{
    private int i;
    Poppet(int i){this.i=i;}
    public String toString(){return "poppet("+i+")";}
}
package com.zyw.reusableClass;

/**
 * Created by zyw on 2016/3/26.
 * 1.private 修饰类中方法隐式指定为final,此方法不需于基类接口的一部分
 * ,仅是一些隐藏在类中的程序代码。
 * 2.final 修饰方法,以防被继承覆盖。
 * 3.final 修饰类 不允许被继承,最终类。
 */
class WithFinals{
    private final void f(){System.out.println("withFinal.f()");}
    private void g(){System.out.println("withFinal.g()");}
}
class OverridingPrivate extends WithFinals{
    public final void f(){System.out.println("OverridingPrivate.f()");}
    public  void g(){System.out.println("OverridingPrivate.g()");}
}
class OverridingPrivate2 extends OverridingPrivate{
//    public final void f(){System.out.println("OverridingPrivate2.f()");}
    public final void g(){System.out.println("OverridingPrivate2.g()");}
}
public class FinalOverridingIllusion {
    public static void main(String args[]){
        OverridingPrivate2 op2=new OverridingPrivate2();
        op2.f();
        op2.g();
        OverridingPrivate op=op2;
        op.f();
        WithFinals wf=op2;
        //wf.g();
    }
}

 

关键字 final

标签:

原文地址:http://www.cnblogs.com/yunwuzhan/p/5322976.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!