Java中修改入参引用之

在Java中,方法参数传递有两种方式:值传递和引用传递。在值传递中,方法接收到的是变量的拷贝,对这个拷贝的修改不会影响原来的变量。而在引用传递中,方法接收到的是指向对象的引用,对这个引用指向的对象的修改会影响原来的对象。

在Java中,对象作为方法参数传递时,实际上传递的是对象的引用。所以在方法中可以修改对象的属性,但不能改变对象的引用。下面将通过代码示例详细说明Java中修改入参引用的情况。

代码示例

public class Person {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

public class Main {
    public static void changeName(Person person) {
        person.setName("Alice");
    }

    public static void main(String[] args) {
        Person person = new Person("Bob");
        System.out.println("Original name: " + person.getName());

        changeName(person);

        System.out.println("Changed name: " + person.getName());
    }
}

在上面的代码示例中,定义了一个Person类,包含姓名属性和修改姓名的方法。在Main类中,创建了一个Person对象,并通过changeName方法修改了其姓名属性。

引用传递

在Java中,对象作为方法参数传递时,实际上传递的是对象的引用。这意味着在方法中修改对象的属性,会影响原来的对象。在上面的代码示例中,changeName方法修改了person对象的姓名属性,原对象的姓名也随之改变。

状态图

stateDiagram
    state Original {
        [*] --> Original
        Original --> Changed
    }

    state Changed {
        Changed --> [*]
    }

总结

在Java中,对象作为方法参数传递时是引用传递,可以修改对象的属性但不能改变对象的引用。通过上面的代码示例和状态图可以更好地理解Java中修改入参引用的情况。开发者在编写代码时,需要注意对象传递的方式,避免出现不必要的错误。