184页习题18

来源:互联网 发布:网络直复营销理论类型 编辑:程序博客网 时间:2024/05/01 09:11
/** * 创建一个类, 里面包含一个static final field和一个final field, 比较异同. * (Exercise 18: (2) Create a class with a static final field and a final field  * and demonstrate the difference between the two.) * 回答: 区别在于final是"不能改变", 而static final是"唯一, 而且不能改变" */package reusing;import java.util.Random;class FinalAndStaticF{private static Random rand=new Random(28);final int i=rand.nextInt(10);static final int J=rand.nextInt(10);}public class P184E18 {public static void main(String[] args){FinalAndStaticF fas1=new FinalAndStaticF();System.out.println("第一次access i 和 J");//! fas1.i++; i是final, 是不能改变的//! fas1.J++; J是final, 是不能改变的System.out.print("i="+fas1.i+"; ");System.out.print("J="+fas1.J);System.out.println();FinalAndStaticF fas2=new FinalAndStaticF();System.out.println("第二次access i 和 J");System.out.print("i="+fas2.i+"; ");System.out.print("J="+fas2.J);System.out.println();FinalAndStaticF fas3=new FinalAndStaticF();System.out.println("第三次access i 和 J");System.out.print("i="+fas3.i+"; ");System.out.print("J="+fas3.J);//连续三次, J都是同样一个值, 所以static final的意思是"唯一而为不可改变的".//这也是compiler推荐使用 FinalAndStaticF.J方式访问J的原因, J是class field//而i的三个值不一样}}

原创粉丝点击