zoukankan      html  css  js  c++  java
  • 关键字 final

    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();
        }
    }
  • 相关阅读:
    基于VB6.0的MICAPS风云二号卫星云图转化实例(转载)
    .CS文件编译生成.DLL文件 .EXE文件(C#网络搜集)(转)
    SQL SERVER 2005及以上查看各表的记录数及占空间大小
    sql2008生成insert语句
    jdk chm文档下载地址
    source insight 解决自动缩进 和 TAB键=4个SPACE
    Hibernate的Criteria的使用
    java多线程协作: wait/notifyAll ( Cooperation between tasks )
    Eclipse 去掉JavaScript Validator
    jquery 插件示例, jquery popup 插件
  • 原文地址:https://www.cnblogs.com/yunwuzhan/p/5322976.html
Copyright © 2011-2022 走看看