回顾方法及加深之值传递和引用传递(05)

回顾方法及加深之值传递和引用传递

Java都是值传递
引用传递:传递对象,本质还是值传递
一个类里面,只能有一个public class ,但是可以有多个class

代码举例

1. 值传递

//值传递和引用传递
//Java都是值传递
public class Demo04 {
    public static void main(String[] args) {
        System.out.println("Hello World !");
        int a = 1;
        System.out.println(a);
        change(5);

        //int a = 1;
        System.out.println(a);
        Demo04.change(a); //change(a);
        System.out.println(a);// 结果不是10 而是1  值传递
    }

    //注意返回值为空
    public static void change(int a) {
        a = 10;
    }//走完这个方法后 a=10 。但是void 表示什么都不返回,没有将a = 10 返回,所以a还是1
}

2. 引用传递

//引用传递:传递对象,本质还是值传递
public class Demo05 {
    public static void main(String[] args) {
        System.out.println("Hello World !");

        Person person = new Person();   //实例化过程:将Person类实例化之后  ,传递给对象person,这个对象person 的类型为Person类型(属于引用类型当中的自定义类型)
        System.out.println(person.name);//null              对象名.属性名         前面提到的是对象名.方法名

        System.out.println(person);
        change(person);
        Demo05.change(person);
        System.out.println(person.name);//小明
        System.out.println(person.age);//
        System.out.println(person);     //输出的是对象的地址
    }

    public static void change(Person person1) {
        //person是一个对象,指向的是Person类,指向的是Person person = new Person();   这是一个具体的人,可以改变属性。
        person1.name = "小明";//它修改的不是change方法里面的值, 而是Person类里面的值 ,所以是能修改成功的
        person1.age = 10;
        //要是此处写person  =  ??; 因为返回值为空,所以返回后是没有修改的。
    }
}

//一个类里面,只能有一个public class ,但是可以有多个class
//定义一个Person类,有一个属性:name
class Person {
    String name;//默认值null
    int age = 1;
}
posted @ 2022-03-23 19:29  intelliyu  阅读(14)  评论(0编辑  收藏  举报