传值问题

    科技2023-11-08  101

    传值问题

    代码结果 age解释(基本数据类型)PersonName解释(引用类型)String的解释(String)

    代码

    package cduck.cn; class Person{ String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public Person() { } public Person(String name) { this.name = name; } } public class TransferValue { public void changeValue1(int age){ age=30; } public void changeValue2(Person person){ person.setName("xxx"); } public void changeValue3(String s){ s ="xxx"; } public static void main(String[] args) { TransferValue transferValue=new TransferValue(); int age=20; transferValue.changeValue1(age); System.out.println("age----"+age); Person person=new Person("zs"); transferValue.changeValue2(person); System.out.println("PersonName----"+person.getName()); String s="nihao"; transferValue.changeValue3(s); System.out.println("String-----"+s); } }

    结果

    age解释(基本数据类型)

    像这种基本变量类型,传值 传的都是复印件,不会传原件。 当执行到

    transferValue.changeValue1(age);

    就会去changeValue1(age);这个方法。执行完以后,没有返回值啥的,就直接跳回来执行输出语句,所以相当于age 没变。

    PersonName解释(引用类型)

    new Person(“zs”); 相当于在堆中放了个“zs”这么个对象。

    String的解释(String)

    Processed: 0.011, SQL: 8