标签:int Value fd1 关键字 private new final
1.final修饰类
不能被继承
: String System StringBuffer
2. final 修饰方法
不可以被重写
: Object 的 getClass()
3. final 修饰变量
常量,无法被改变
必须要在对象创建之前 或者 对象创建时候 赋值
-
final 修饰属性:可以考虑的赋值位置
-
显式初始化
-
代码块中初始化
-
构造器中初始化
1 import java.util.Random; 2 3 class Value{ 4 int i; 5 public Value(int i){ 6 this.i = i; 7 } 8 } 9 public class FinalData { 10 private static Random rand = new Random(47); 11 private String id; 12 public FinalData(String id){ 13 this.id = id; 14 } 15 private final int valueOne = 9;//编译期就初始化了 编译器常量 16 //? 17 private static final int VALUE_TWO = 99;//static final 18 public static final int VALUE_THREE = 39; 19 20 private final int i4 = rand.nextInt(20);// 第一次赋值的时候就已经 给常量赋值 一旦赋值 他们的值不能被改变 永远都是这样的 21 static final int INT_5 = rand.nextInt(20);//static 注意 是在类加载的时候 就被初始化 无论创建多少对象都无法被改变 22 23 private Value v1 = new Value(11); 24 private final Value v2 = new Value(22); 25 private static final Value VAL_3 = new Value(33); 26 27 private final int[] a = {1,2,3,4,5,6}; 28 public String toString(){ 29 return id + ":" + "i4 = " + i4 + ", INT_5 = " + INT_5; 30 } 31 32 public static void main(String[] args) { 33 FinalData fd1 = new FinalData("fd1"); 34 // fd1.valueOne++; //报错 final数据 不能被改变 35 fd1.v2.i++;//v2 中的 属性i值内容被改变了 是可以的 不是修改的 final Value 这个常量对象 所以可以 36 fd1.v1 = new Value(9);//v1 不是final 可以被改变 37 // fd1.v2 = new Value(1);//报错 final对象 不能被改变 38 39 40 for (int i = 0; i < fd1.a.length; i++) { fd1.a[i]++; }//没有报错 修改的是 final数组对象的内部值 41 // fd1.a = new int[3];//报错 修改了 final 数组对象 42 43 System.out.println(fd1);//对象 44 45 //创建的新的对象 46 FinalData fd2 = new FinalData("fd2"); 47 48 49 System.out.println(fd1); 50 System.out.println("new Object"); 51 System.out.println(fd2); 52 } 53 } 54 /* 55 fd1:i4 = 15, INT_5 = 18 56 fd1:i4 = 15, INT_5 = 18 57 new Object 58 fd2:i4 = 13, INT_5 = 18 59 */
标签:int,Value,fd1,关键字,private,new,final 来源: https://www.cnblogs.com/lzw-lxy/p/16023147.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。