构造方法中的final是什么意思 假设有两个类class A,class Personpublic class A{ Person p; A(final Person p) { this.p = p; }}没有这个final怎么不行呢,final加在这里是什么意思 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 莫非 构造方法是默认的,参数列表中的类型得是final 标明该参数类型必须被声明为final.不可改变的.不是说在构造处不可改变,而是指p指向的这个对象自一构造起就不可改变.只有符合这个要求的p,才可作为这个构造函数的参数 定义参数,要求必须是常量。就像C++中的const 没有fianl为啥不行??加上final,对象的定义权限变化了,不能被继承。编程"最终类"了 没有final不行,是因为类属性希望是一个常量,虽然直接用final修饰属性也能达到这样的目的保证属性不能在类内被修改,但是不能保证属性在类外不被修改,因为这个属性的实体在类外没有被final修饰。你说的不能被继承是final修饰的类,这里修饰的是构造函数的参数。 名字重复了。。Person p和Person P这让编译器怎么识别 被你"骗了",构造函数的参数列表非得是final吗?你Person 里面是怎么写的? 就是,没有final完全可以这么写 final 是不能变的 那样写 没见过 这样写的话,在构造方法中就不能给传进来的p重新赋值注意一下:final只能保证对象的引用不变,但不能保证其对象也不变 构造参数中加入final,用来保持传入的参数不会被改变编程习惯而已一般认为set动作的参数应该被声明成final以防止一些错误的访问,C里面用的比较多,JAVA很少这么写JAVA传值和C不太一样,一般不考虑这个问题的 忘了说了,我还添加了一个匿名事件,里面也用了一个Person p,这样没有final就会报错,不知为什么 构造参数中的final是用来修饰person类的,而final类是最终类不可被继承,所以传过去的要是person类的子类 楼主的意思应该是 方法中的内部类问题当内部类要访问方法中的局部变量 那么该变量必须为final型的 楼主的意思不是内部类,final变量的意思不是他引用的对象不可变,而是p不能在方法中在引用其他变量. A(final Person p) { this.p = p; } 将p的赋给this.p,p不可改变,1、不可改变值;2、不可改变该引用(改变指向其他); 对于上面的代码本身而言,final屁意义也没有 请教 问啥是正则式 关于Struts中的ActionForm 关于Arrays类的binarySearch方法 讨论程序中try..catch异常处理代码后的程序剩余代码是否还执行? 怎么样动态决定对象类型 java io中的初学者问题,求教! 把分献给回答问题最清楚的那个人(对于你来说,可能超级简单) 为什么这段代码要拉一下窗体才会现出按扭,要如何解决! 有哪位大虾对MySql比较熟悉呀,我怎么连接不上数据库啊? java中直接写一对花括号有什么用 GUI设计,如何更改鼠标样式
不是说在构造处不可改变,而是指p指向的这个对象自一构造起就不可改变.只有符合这个要求的p,才可作为这个构造函数的参数
你说的不能被继承是final修饰的类,这里修饰的是构造函数的参数。
就是,没有final完全可以这么写
那样写 没见过
注意一下:final只能保证对象的引用不变,但不能保证其对象也不变
编程习惯而已
一般认为set动作的参数应该被声明成final以防止一些错误的访问,C里面用的比较多,JAVA很少这么写
JAVA传值和C不太一样,一般不考虑这个问题的
当内部类要访问方法中的局部变量 那么该变量必须为final型的
{
this.p = p;
}
将p的赋给this.p,p不可改变,1、不可改变值;2、不可改变该引用(改变指向其他);