社区
Java SE
帖子详情
函数传参中的 final
supergerm
2005-04-03 01:08:18
假设:
KK 是一个对象的引用,a、b 都是 KK 的数据成员,将KK以参数形式传递给一个函数。
问题:
如何做,才能防止 a、b 在函数中被修改?
...全文
229
15
打赏
收藏
函数传参中的 final
假设: KK 是一个对象的引用,a、b 都是 KK 的数据成员,将KK以参数形式传递给一个函数。 问题: 如何做,才能防止 a、b 在函数中被修改?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
supergerm
2005-04-04
打赏
举报
回复
哦。好吧。谢谢大家。结帖了。
kingfish
2005-04-03
打赏
举报
回复
那做不到
java并没有像其它语言提供readonly的支持。
supergerm
2005-04-03
打赏
举报
回复
不。。您也没理解我的意思。。。。我的意思是,在公有的情况下,就是不想让他被改。。。因为某些时候,有必要用的。
kingfish
2005-04-03
打赏
举报
回复
by value
即使不用final也改不了x(x的a和b可以改)
class KK{
private int a;
private int b;
public KK(int a,int b){
this.a = a;
this.b = b;
}
}
void f(KK x){
x.setA(1);
x.setB(2); //如果不提供set方法,就不能改了
}
supergerm
2005-04-03
打赏
举报
回复
还有没有人可以解释下了?
supergerm
2005-04-03
打赏
举报
回复
??没看懂
escalj
2005-04-03
打赏
举报
回复
?!
vgvg
2005-04-03
打赏
举报
回复
class KK{
final int a=0;
final int b=0;
}
class Test{
public static void main(String[] arg){
KK k0=new KK();
method(k0);
}
static void method(KK k){
//k.a=1;
//k.b=2;
}
}
-----------------
class KK{
private int a;
private int b;
}
class Test{
public static void main(String[] arg){
KK k0=new KK();
method(k0);
}
static void method(KK k){
//k.a=1;
//k.b=2;
}
}
supergerm
2005-04-03
打赏
举报
回复
是的,正因为 (final KK x) 这是使 KK 这个引用看成了“常量”,而不是内部的对象。我现在就是想问如何能使这个对象成为“常量”呢?
还是没有这种方法??
Ji秋风
2005-04-03
打赏
举报
回复
void fun(final KK x)
~~~~~~~~~~~~~~~~~~这里的final只说明x不能赋予新的KK对象。
如果a,b是public,人家还是可以修改的。
好的方法是,你要使用private或protected保护起来。
supergerm
2005-04-03
打赏
举报
回复
To: midthinker(思索者)
你误解我的意思了。。我是要把 对象传到函数里面去, a、b 只是举个例子罢了。对于 传进的那个对象,我是不想让函数修改他所有的成员。
supergerm
2005-04-03
打赏
举报
回复
NO! 你们误解了。。。我知道在参数中用 final 但不知道用在哪个位置,请给个例子可以吗?
midthinker
2005-04-03
打赏
举报
回复
final能够相当不错的解决问题,但是如果可以得到a,b中真正关心的简单数据类型的话,还是建议利用简单数据类型作为参数传递。
@.@||~
F1in2003
2005-04-03
打赏
举报
回复
自问自答?
jFresH_MaN
2005-04-03
打赏
举报
回复
你的标题已经给出了答案啊
[php扩展开发] -- 类构造
函数
传参
实现一个person类 ,实现一个doing方法和saying方法在构造方法
中
传递一个数组,在doing
中
打印此数组saying方法
中
,构建一个空数组,返回,不需要
传参
。 2.class扩展 2.1创建类的扩展: [root@bogon ext]
[Java]
函数
传参
分析
Java
函数
传参
,对于非引用类型(基本数据类型如int,float等),
函数
传参
修改是没有任何效果的 对于引用数据类型,类(接口),数组,枚举等,修改的时候,也只能修改数据的属性,而不能修改“数据本身指向” 这个...
Android Fragment使用构造
函数
传参
,在签名打包时出错的原因及解决办法
private static
final
String ARG = "arg"; public TestFragment() { Log. i("INFO", "TestFragment non-parameter constructor" ); } public static Fragment newInstance(String arg){ ...
Java
函数
的
传参
机制——你真的了解吗?
这篇博客的灵感来源于我参加的一次面试,面试官与我比较深入的讨论了Java
函数
传参
的问题,当时与他讨论了好半天,不知道是面试官自己没彻底弄清楚还是因为他故意想深入考察我对这个知识点的了解程度。Java
函数
的
传参
...
关于Android
中
主
函数
中
button点击事件关联
函数
传参
的问题
在Main.activity
中
写了这样一个方法,关联button后,报错,后来对比其他的方法,发现少了参数View view,搞不明白为啥,先留个问题,之后弄明白了再回答 public void showDialog2(View view) {
final
...
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章