参数是对象,传递过去的是引用(即地址),当这个对象里面的内容改变后,不影响这个对象的地址,即对象地址没有变.下面是演示- public class Test
- {
- public static void main(String[] args)
- {
- Person p1=new Person("张三",29);
- Person p2=new Person("李四",24);
- System.out.println("交换前");
- p1.display();
- p2.display();
- Person.swarp(p1, p2);
- System.out.println("交换后");
- p1.display();
- p2.display();
- }
- }
-
- class Person
- {
- private int age;
- private String name;
- public Person(String n,int d)
- {
- this.name=n;
- this.age=d;
- }
- public static void swarp(Person m1,Person m2)
- {
- Person temp=null;
- temp=m1;
- m1=m2;
- m2=temp;
- }
-
- public void display(){
- System.out.println("name="+this.name+" age="+this.age);
- }
- }
复制代码
解释:
java方法中传递参数时,无论是传递基本数据类型还是引用类型,都是传递参数(显示参数)的一个
拷贝,所以在调用方法结素之后,访问的仍是原来的值 |