值传递和引用传递

值传递和引用传递


  • 值传递:对形参的修改不会影响到实参;
  • 引用传递:对形参的修改会影响到实参;

实参:要传递给方法的实际参数,在方法外面;

形参:方法签名上定义的参数,在方法里面;

public static void main(String[] args) {
    int a=8;//实参
    f(a);
}
public static void f(int a){
    System.out.println(a);//形参
}

    public static void main(String[] args) {
int a=8;
f(a);
        System.out.println("实参:"+a);
    }
    public static void f(int a){
        a=16;
        System.out.println("形参:"+a);
    }
    //打印结果:形参:16;实参:8.
  • 引用等于遥控器,对象等于电视机;

//引用传递:对象 本质还是值传递  一个类中只有一个public class,但是还可以有其他class
public class Demo5 {
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person.name);//null
    Demo5.change(person);
        System.out.println(person.name);//蔺泽林
    }
public static void change(Person person) {
        //person是一个对象,指向的 Person person = new Person();这是一个具体的人,可以改变属性;
person.name = "蔺泽林";
    }
     }
    //定义一个Person类,有一个属性:name
    class Person {
        String name;//默认为null
    }

  • 形参重新赋值,实参将无影响

  • 值传递:创建副本;引用传递:调用原地址;

img

基本数据类型传递到方法中,然后在方法中修改形参的值;打印出来,形参修改不会影响实参;对象传递,由于调用的是对象的地址,形参就相当于遥控器,对象就相当于是电视机,内容不是由遥控器的内容决定的,而是由电视机的内容决定。
posted @ 2023-01-20 17:29  初来乍到的小蜗  阅读(43)  评论(0)    收藏  举报