Java按值传递

2017-12-26  本文已影响0人  Android_小马范儿

1、方法传递的是基本数据类型

public class SortMain {

    public static void main(String[] args) {
        int i=5;
        changei(i);
        System.out.println("after="+i);

    }
}
  private static void changei(int i) {
        i=i*3;
        System.out.println("before="+i);
    }
打印结果
before=15
after=5

2、方法传递的是对象,修改的是对象数据和对象引用的不同

public class Student {

    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

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

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
public class SortMain {

    public static void main(String[] args) {
   
        Student student = new Student("小马哥", 25);
        changeName(student);
        System.out.println(student.toString());

        Student refre = new Student("引用", 28);
        changeStu(refre);
        System.out.println(refre.toString());
    }

  private static void changeStu(Student refre) {
        refre = new Student("引用修改", 30);
        System.out.println(refre.toString());
    }

    private static void changeName(Student student) {
        student.setName("修改名称");
        System.out.println(student.toString());
    }
}
打印结果:
Student{name='修改名称', age=25}
Student{name='修改名称', age=25}
Student{name='引用修改', age=30}
Student{name='引用', age=28}
上一篇 下一篇

猜你喜欢

热点阅读