黑马程序员技术交流社区

标题: 急求!!!final的问题 [打印本页]

作者: kkopopo    时间: 2014-2-28 19:42
标题: 急求!!!final的问题
本帖最后由 kkopopo 于 2014-2-28 22:07 编辑
  1. public class Test2 {
  2.         public static void main(String[] args) {

  3.                 final int age = 1;
  4.                 myMetod(age,new Student());//这个地方为何不报错? 我在函数中明明定义的必须为final
  5.         }
  6.         public static void myMetod(final int x,final Student stu){
  7.                 //
  8.         }

  9. }
  10. class Student{
  11.         
  12. }
复制代码
代码部分  我明明要求穿进去的参数必须是final的,为何new Student就可以!

作者: 乔青山    时间: 2014-2-28 19:51
你参数上的final仅仅是对于函数内部有效的,函数执行结束后这个函数在栈内存是被释放的,所以参数上的final Student stu是可以再次赋值的。
作者: 李金中    时间: 2014-2-28 20:01
你可以查询下 final的用法。
对于final修饰形参来说,表示 你传入的实参的内容或者值是不能在函数内部改变的。。而跟你传入的实参的方式没有关系。
作者: kkopopo    时间: 2014-2-28 22:06
乔青山 发表于 2014-2-28 19:51
你参数上的final仅仅是对于函数内部有效的,函数执行结束后这个函数在栈内存是被释放的,所以参数上的final ...

万分感谢!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2