首页 > 学院 > 开发设计 > 正文

定义为final的变量

2019-11-06 06:08:00
字体:
来源:转载
供稿:网友

      我们在写程序的时候通常能看到将一个类型定义为final类型,前几日刚好遇到一些困惑,查看资料后在此做一下摘录:

       理解final最主要的是这句话:定义为final的变量,指的是该变量的   “引用”  不能被再次赋值。

      比如:

         

final int a=1;    这边定义的int类型a,他其实直接是放在栈里面的,固然不能重新对其赋值。

final String str="abc";   这边定义了一个String类型str ,这个str指向的是常量池中"abc"的位置,即"abc"的引用,所以我们对其重新赋值的时候,引用会改变,这与final的定义相违背。

final int[] arr=new int[5];   这里我们定义了一个数组,那arr的引用其实是数组大开始地址,当我们再进行arr=new int[3];时,这是不被允许的,因为其引用会改变。当我们对其进行赋值,

   如:arr[0]=0;arr[1]=1; 这些操作的时候,其引用并没有改变,所以这是被允许的。

   同样的,我们也可以类推到自定义的类  如:Stu类中有name字段

final Stu stu=new Stu("fzy");    这时,我们对这个stu的name重新赋值也是没有问题的, stu.setName("zy");


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表