问题描述
c++里可以成const&st,防止引用参数被修改,在java里应该怎么写?
解决方案
解决方案二:
你是指函数参数为常量吗?如果是,用finalpublicvoidtest(finalinta){}
解决方案三:
Java传递参数,如果是intString,不加final也没事。
解决方案四:
引用1楼enzo1986的回复:
你是指函数参数为常量吗?如果是,用finalpublicvoidtest(finalinta){}
你好。publicstaticvoidchange(finalningn){n.i=1;}我声明了final还是可以改变参数。
解决方案五:
引用2楼healer_kx的回复:
Java传递参数,如果是intString,不加final也没事。
你好。publicstaticvoidchange(finalningn){n.i=1;}我声明了final还是可以改变参数。
解决方案六:
引用4楼ningweidong的回复:
引用2楼healer_kx的回复:Java传递参数,如果是intString,不加final也没事。你好。publicstaticvoidchange(finalningn){n.i=1;}我声明了final还是可以改变参数。
这种语境下的常量是指,ningr的引用n不可以再指向其它的实例.但改变n实例内部的属性是没有问题的.如果你这样写就编不过去啦....ublicstaticvoidchange(finalningn){nings=null;n=s;}
解决方案七:
c++里可以成const&st,防止引用参数被修改不止是防止引用被修,还有几个更重要的原因1.速度2.可以传递临时参数(非常重要,尤其是在Qt中到处都是)3.只有非const方法能被调用4.不能修对象的属性值你好。publicstaticvoidchange(finalningn){n.i=1;}我声明了final还是可以改变参数。Java里只是引用本身不能被修,但是引用的属性值是可以被修改的。相当于C++的指针常量,而非常量指针,即是int*constpointer
解决方案八:
引用6楼inhibitory的回复:
c++里可以成const&st,防止引用参数被修改不止是防止引用被修,还有几个更重要的原因1.速度2.可以传递临时参数(非常重要,尤其是在Qt中到处都是)3.只有非const方法能被调用4.不能修对象的属性值你好。publicstaticvoidchange(finalningn){n.i=1;}我声明了final还是可以……
你好。如果我想实现常量指针的功能,就是不请允许修改引用的属性值,应该怎么做?
解决方案九:
你好,我想只读取参数的值,而不准修改它的属性值,应该怎么做?引用5楼ganhaitian的回复:
引用4楼ningweidong的回复:引用2楼healer_kx的回复:Java传递参数,如果是intString,不加final也没事。你好。publicstaticvoidchange(finalningn){n.i=1;}我声明了final还是可以改变参数。这种语境下的常量是指,ningr的引用n不可以再指……
解决方案十:
参数前面加上final修饰符就OK
解决方案十一:
引用7楼ningweidong的回复:
引用6楼inhibitory的回复:c++里可以成const&st,防止引用参数被修改不止是防止引用被修,还有几个更重要的原因1.速度2.可以传递临时参数(非常重要,尤其是在Qt中到处都是)3.只有非const方法能被调用4.不能修对象的属性值你好。publicstaticvoidchange(finalningn……
Java里做不到
解决方案十二:
你好。我觉得常量指针的功能很重要啊,java没办法实现吗?引用10楼inhibitory的回复:
引用7楼ningweidong的回复:引用6楼inhibitory的回复:c++里可以成const&st,防止引用参数被修改不止是防止引用被修,还有几个更重要的原因1.速度2.可以传递临时参数(非常重要,尤其是在Qt中到处都是)3.只有非const方法能被调用4.不能修对象的属性值你好。publics……
解决方案十三:
写一个子类,涉及到修改属性值的方法空实现或者抛异常
解决方案十四:
java里面好像都是传值的
解决方案十五:
该回复于2011-05-09 09:59:24被版主删除