java关于参数传递的思考
来源:互联网 发布:梦洁床垫怎么样知乎 编辑:程序博客网 时间:2024/05/19 15:18
首先思考一个问题
public
class
Test
{
public
static
void
changeStr(String str)
{
str =
"welcome"
;
}
public
static
void
main(String[] args)
{
String str =
"1234"
;
changeStr(str);
System.out.println(str);
}
}
- 1234
- welcome
- 空
- 不确定
再看下面的例子:
public class TestDemo
{
public static void changeStr(Demo d)
{
System.out.println("我是形参"+d);
d=new Demo();
System.out.println("我是形参"+d);
}
public static void main(String[] args)
{
Demo d=new Demo();
System.out.println("我是实参"+d);
changeStr(d);
System.out.println("我是实参"+d);
}
}
打印结果为
我是实参com.chris.test2.Demo@139a55
我是形参com.chris.test2.Demo@139a55
我是形参com.chris.test2.Demo@1db9742
我是实参com.chris.test2.Demo@139a55
得到的结果与第一个例子一样
{
public static int i=0;
public static void changeStr(TestDemo d)
{
System.out.println("我是形参"+d.i);
d.i=2;
System.out.println("我是形参"+d.i);
}
public static void main(String[] args)
{
TestDemo d=new TestDemo();
System.out.println("我是实参"+d.i);
changeStr(d);
System.out.println("我是实参"+d.i);
}
}
我是实参0
我是形参0
我是形参2
我是实参2
这样就能通过改变形参中的属性变量,来改变实参的属性变量了。
(2)通过改变数组或集合中元素的内容,来改变实参
public class TestDemo
{
public static void changeStr(List<String> list)
{
System.out.println("我是形参"+list.size());
list.add(0, "hellokit");
System.out.println("我是形参"+list.size());
}
public static void main(String[] args)
{
List<String> list = new ArrayList();
System.out.println("我是实参"+list.size());
changeStr(list);
System.out.println("我是实参"+list.size());
}
}
打印结果:
我是实参0
我是形参0
我是形参1
我是实参1
这样就能通过改变数组或集合中元素的内容,来改变实参了。
总结:
如果让形参指向了另一个类,则此时形参和实参就指向了不同的对象,他们就没有关系了。
- java关于参数传递的思考
- 关于.NET参数传递方式的思考
- 关于.NET参数传递方式的思考
- 关于java参数的传递
- 关于函数调用中参数传递的一些思考
- 关于inline函数,可以作为函数参数传递的思考
- 关于Java中值传递和引用传递的一点思考
- 由JAVA参数传递引发的对引用的思考
- JAVA关于参数传递
- 关于java参数传递
- 关于JAVA参数传递的问题!~
- 关于java 参数 值传递的感悟
- java 关于传递参数的问题
- 关于Java 传递参数时的问题
- 关于java中参数传递的问题
- 关于Java方法参数的传递问题
- 关于java方法是传递值还是引用的思考
- 关于参数的传递
- http协议学习笔记(四)
- jQuery-Ajax
- 快稳炫:电商峰值系统架构三字诀
- Scala Worksheet
- PHP变量的定义与相应的数据类型
- java关于参数传递的思考
- NSNotification在UITextField的应用
- FragmentManager分析(个人笔记)
- HDU-ACM2074
- 并查集总结
- mysql大页内存的使用
- VMware下 Ubuntu 看不到共享文件夹之解决办法
- 45-Letter Combinations of a Phone Number
- Filezilla client站点出现中文乱码的解决办法