美文网首页
Java按值传递

Java按值传递

作者: Android_小马范儿 | 来源:发表于2017-12-26 10:32 被阅读0次

    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}
    

    相关文章

      网友评论

          本文标题:Java按值传递

          本文链接:https://www.haomeiwen.com/subject/bcjdgxtx.html