方法形参操作改变传入前实际参数。

原创 2015年11月21日 12:16:05

记住一点!    形参是否跟实际参数是一个对象地址,     也就是栈中的对象引用地址是否为同一个;


例如      

public class Test1 {
public static void changeStr(String str){
str=”4321”; //查询常量池中没有4321 所以创建一个对象,  此时的str  已经不是主函数里面的str。
}
public static void main(String[] args) {  //入口处
String str=”1234″
changeStr(str);
System.out.println(str);
}
输出结果为  1234   方法changeStr并没有改变 主函数中的str;只是改变他方法内str对象

再例如:

public  class  Car  {
	public String name;
}
public static void changeCarName(Car car){
	car.name="新车";              //是直接操作 形参的对象 并没有 创建新对象操作 ;
}
public static void main(String[] args) {
	Car car= new Car();
	car.name ="旧车";
	changeCarName(car);
	System.out.print(car.name);
}
输出“新车”          :

版权声明:欢迎你来转载,不过请带个此Blog链接!

关于引用构造函数形参和实际参数的数据类型必须一致的实验案例

在构造函数后引用函数的话实际的参数必须和构造函数时的形参数据类型一致,为此笔者做了一个实验,代码如下: 笔者首先构造了一个求绝对值的函数zabs(),然后将整型变量b传入函数,计算其绝对值,...

C# 实例对象作为参数传递与方法内部的形参关系

在此之前,我们先看一段程序: class Program     {         static void Main(string[] args)         {           ...

java学习总结(16.05.24)向main方法的形参传递参数的方法

java中main方法有一个字符串数组型的形参args,因为main方法是由系统调用的,程序员向其传递参数的手段也有所不同。下面介绍两种将数据传递给main方法的args形参的方法。 在使用命令行...

javascript传入参数,引用or形参

1.JavaScript hoisting   >>请看例子,我们拿Chrome的console作为JS的运行环境。 上面直接执行console.log(a), 不带一点悬念地抛出了not ...

java中形参String的可变参数的定义(String...)

现在我们在编程的时候,经常会出现这样子一些方法: Java代码  public void paintReportChart(int i, String… args) {          final ...

C++Primer:函数(参数传递:引用形参)

1.问题的引入 考虑下面不适宜复制实参的例子,该函数希望交换两个实参的值: void swap(int v1, int v2) { int temp = v2; v2 = v...

二维数组作为形参的参数传递问题

首先,我引用了谭浩强先生编著的《C程序设计》上面的一节原文,它简要介绍了如何将二维数组作为参数传递,原文如下(略有改变,请原谅):   [原文开始]   可以用二维数组名作为实参或者形参,在被...

C++ primer 传递参数( const 实参 形参 引用)

一、.非引用形参: 通过复制对应的实参实现初始化。当用实参副本初始化形参时,函数并没有访问调用所传递的实参本身,因此不会修改实参的值。 1.指针形参:此时复制实参指针。与其他非引用类型的形参一样,该...

java中形参的可变参数的定义(如String... args)

如果有下面的一个笔试题: 已知我们有如下的调用关系 logIt(”log message 1 “); logIt(”log message2”,”log message3”); logIt...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:方法形参操作改变传入前实际参数。
举报原因:
原因补充:

(最多只允许输入30个字)