社区
Java SE
帖子详情
如果修改方法参数所指向的值
zjwilove4
2010-03-17 03:48:21
例如:
public void test1(String arg1){
//如何才能修改arg1这个引用所指向的值呢?想了半天不得解啊。。。
}
...全文
138
21
打赏
收藏
如果修改方法参数所指向的值
例如: public void test1(String arg1){ //如何才能修改arg1这个引用所指向的值呢?想了半天不得解啊。。。 }
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hjh811
2010-03-17
打赏
举报
回复
要改的话,用StringBuffer咯,不然人家为什么要提供这个StringBuffer
zjwilove4
2010-03-17
打赏
举报
回复
哎 翻阅了相关文档这个问题无法解决
谢谢大家了
j_tang
2010-03-17
打赏
举报
回复
方法形参的问题也困扰过我一段时间 :)
zjwilove4
2010-03-17
打赏
举报
回复
[Quote=引用 17 楼 j_tang 的回复:]
引用 15 楼 zjwilove4 的回复:
哎 关键还就是String类型。。。
不是基本类型也不是自定义类型
悲愤
呵呵 String对象貌似是不能更改的啊
记得有个字符串池的概念啊 敢问这样做的深层次原因么
[/Quote]
谢谢提醒 我搞搞去
j_tang
2010-03-17
打赏
举报
回复
[Quote=引用 15 楼 zjwilove4 的回复:]
哎 关键还就是String类型。。。
不是基本类型也不是自定义类型
悲愤
[/Quote]
呵呵 String对象貌似是不能更改的啊
记得有个字符串池的概念啊 敢问这样做的深层次原因么
j_tang
2010-03-17
打赏
举报
回复
[Quote=引用 14 楼 xiesisi3 的回复:]
引用 13 楼 j_tang 的回复:
public void test1(Demo arg){
arg.setValue(99);// 这样就改变arg这个对象中的值了
}
class Demo {
int i = 0;
public void setValue(int value){
this.i = value;
}
排版比较乱, 直接在论坛上敲的, 不知道是否是……
[/Quote]
糊涂了, 改变引用本身 不大明白这个意思
如果是改变 arg的引用的话
直接 arg = new Demo(); 就好了啊
zjwilove4
2010-03-17
打赏
举报
回复
哎 关键还就是String类型。。。
不是基本类型也不是自定义类型
悲愤
xiesisi3
2010-03-17
打赏
举报
回复
[Quote=引用 13 楼 j_tang 的回复:]
public void test1(Demo arg){
arg.setValue(99);// 这样就改变arg这个对象中的值了
}
class Demo {
int i = 0;
public void setValue(int value){
this.i = value;
}
排版比较乱, 直接在论坛上敲的, 不知道是否是lz想要的效果
[/Quote]
LZ是要改变引用本身,不是要改变引用指向的值
j_tang
2010-03-17
打赏
举报
回复
public void test1(Demo arg){
arg.setValue(99);// 这样就改变arg这个对象中的值了
}
class Demo {
int i = 0;
public void setValue(int value){
this.i = value;
}
排版比较乱, 直接在论坛上敲的, 不知道是否是lz想要的效果
xiesisi3
2010-03-17
打赏
举报
回复
[Quote=引用 10 楼 zjwilove4 的回复:]
public static void main(String[] args){
String arg = "0";//arg最开始指向的是 "0"这个内存地址。
new Test().test1(arg);//调用方法时把arg这个引用复制了一份传递给了方法
System.out.println(arg);//实际上还是打印的0
}
public void test1(String ar……
[/Quote]
那是不可能的,因为对于方法内部来说,它根本不需要知道有那样一个引用arg存在,它只知道传进来的这个引用。
如果一定要改,那么只有把arg作为类变量,那么你在哪里改都可以
j_tang
2010-03-17
打赏
举报
回复
[Quote=引用 10 楼 zjwilove4 的回复:]
public static void main(String[] args){
String arg = "0";//arg最开始指向的是 "0"这个内存地址。
new Test().test1(arg);//调用方法时把arg这个引用复制了一份传递给了方法
System.out.println(arg);//实际上还是打印的0
}
public void test1(String a……
[/Quote]
如果把String类型,换成其他的对象类型是可以的
比如 arg对象可以通过访问自己的方法,来改变自己对象中的字段
zjwilove4
2010-03-17
打赏
举报
回复
public static void main(String[] args){
String arg = "0";//arg最开始指向的是 "0"这个内存地址。
new Test().test1(arg);//调用方法时把arg这个引用复制了一份传递给了方法
System.out.println(arg);//实际上还是打印的0
}
public void test1(String arg){
arg = "1";在方法中arg = "1" 把这个复制的引用重新指向了 "1"这个内存地址
}
我的问题是:能不能有什么办法在方法中改变 arg所指向的 值?
xiesisi3
2010-03-17
打赏
举报
回复
这个不同于c,c里面传值修改是没有用的,但java里面因为是一份资源的两个引用,所以任何一个修改都可以改掉这同一份资源。但是引用本身互相之间不能产生作用,因为它们甚至都不知道对方的存在。
xiesisi3
2010-03-17
打赏
举报
回复
你有没有看内容?
结果是修改了好不好。。为什么会变成10,就是因为已经修改了。
zjwilove4
2010-03-17
打赏
举报
回复
这个我知道。关键是能不能修改?
xiesisi3
2010-03-17
打赏
举报
回复
http://topic.csdn.net/u/20100317/11/dec632aa-5e60-41aa-8942-4878630131ca.html
xiesisi3
2010-03-17
打赏
举报
回复
。。。
刚刚还有人问这个问题来着。。
http://topic.csdn.net/u/20100317/11/dec632aa-5e60-41aa-8942-4878630131ca.html
你看我在四楼的回复就明白了
zjwilove4
2010-03-17
打赏
举报
回复
说明白点就是修改p1这个引用所指向的内存地址当中的值
而不是修改p1这个引用所指向的内存地址
zjwilove4
2010-03-17
打赏
举报
回复
[Quote=引用 2 楼 xiesisi3 的回复:]
什么意思?能具体点吗?
你是说
test1(p);
public void test1(String p1) {
p1 = ...
}
[/Quote]
如果是这样修改的话 修改的是p1这个引用
我的意思是修改参数p1这个引用所指向的值
xiesisi3
2010-03-17
打赏
举报
回复
什么意思?能具体点吗?
你是说
test1(p);
public void test1(String p1) {
p1 = ...
}
然后你想修改什么呢?
加载更多回复(1)
js基础--
修改
this指针
指向
的
方法
thisthis。
python默认
参数
的
值
可以
修改
_Python缺省
值
参数
之坑
最近学习编程的过程中,被一个大坑折磨了挺久。当时我正在编写一个函数,函数的过程的
参数
是一个带缺省
值
的列表对象,该函数需要对列表进行
修改
,最终函数的返回
值
是这个
修改
后的列表。整个函数可以抽象成下面这样简单的函数:
修改
列表函数可以看到append_lst( )这个函数特别简单,就是将输入变量lst的尾部添加一个1,最后将其返回。最下面两行是将调用得到的列表赋
值
给lst_update,然后将其打印出来。...
js
修改
函数this
指向
的三种常用
方法
总结
函数在调用时this
指向
可以随意的进行
修改
。通过使用call apply bind可以
修改
对应的this
指向
。
对java中
方法
参数
的学习
/** * @author zhangyongzhi E-mail:zhangyonzhi@163.com * @version 创建时间:Dec 15, 2008 7:55:31 AM * 对java中
方法
参数
的练习. * java中的
方法
参数
有这么几个特点: * 1.
方法
不能
修改
基本类型的
参数
* 2.
方法
可以
修改
对象
参数
的状态 * 3.
方法
不能让对象
参数
指向
新...
c语言函数返回多个
值
的
方法
汇总(附带实例,新手必看)
在C语言中,函数通常只能直接返回一个
值
,这是因为C语言的函数设计初衷是返回单一的结果。然而,这并不意味着我们无法让函数传递多个
值
给调用者。事实上,我们有几种
方法
可以实现这一目标,让函数在实际应用中“返回”多个
值
。接下来,让我们深入探讨这些
方法
,并通过示例来理解它们的实现。
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章