自学JAVA知识点总结 - 初级-第16页 - Aaron's Home -黄泽雨个人博客

记录与分享

自学JAVA知识点总结 - 初级

编程语言 JAVA

面向对象 - Java参数传值机制

← 返回目录

参数传值机制

        基本数据类型参数的传值:Java中,方法中所有参数都是“值传递”,传递的是值的副本。也就是说,得到的是“原参数的复印件,而不是原件”,因此,复印件改变不会影响原件。

        引用类型参数的传值:传递的是值的副本,但是引用类型指的是“对象的地址”。因此,副本和原参数都指向了同一个“地址”,改变“副本指向地址的对象的值”,意味着原参数指向对象的值也发生了改变。

package test;

public class Test{
  String name;
    
  public static void main(String[] args) {
    test  t  =  new test("黄泽雨"); //创建对象并赋值name
      
    t.test1(t); //调用test.test1方法,并将t传递给test1.u变量
    System.out.println(t.name); //输出name,在test1方法中,修改了name的值,原参数也会被改变,输出"黄泽雷"
    t.test2(t);
    System.out.println(t.name); //test2创建的新对象不影响当前对象中name的值,所以不发生变化,还是输出"黄泽雷"
  }
    
  public test(String name) {
    this.name = name;
  }
    
  public void test1(test u){ //从main传递来的 t 赋值给局部变量u
    u.name="黄泽雷"; //改变name的值,此时原参数name也发生了变化
  }
  
  public void test2(test u){ //从main传递来的 t 赋值给局部变量u
    u = new test("黄泽风"); //新建对象不影响上一个对象,所以上一个对象的name不发生变化
  }
}

 

 


↓ 点击翻页 ↓

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

分享