结论:
1、基本数据类型做为形式参数传递,对形式参数的改变不会影响到实际参数。
2、引用数据类型比如String、Integer做为形式参数传递和基本数据类型做为形式参数传递一样,对形式参数的改变不会影响到实际参数。
3、引用数据类型比如自定义类Student做为形式参数传递,对形式参数的改变会影响到实际参数。
代码示例:
package cn.zxj.com; public class Student { private String name; private int age; private String sex; @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + ", sex='" + sex + '\'' + '}'; } public Student(String name, int age, String sex) { this.name = name; this.age = age; this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
package cn.zxj.com; public class Demo { public static void main(String[] args) { //基本类型做为形式参数 int i = 10; basicParam(i); System.out.println("基本数据类型:"+i); //引用类型做为形式参数 String s ="test1"; quoteParam(s); System.out.println("引用数据类型String:"+s); Integer in = 10; quoteParam(in); System.out.println("引用数据类型Integer:"+in); Student st = new Student("wang",20,"man"); quoteParam(st); System.out.println("引用数据类型自定义类:"+st); } private static void quoteParam(String s) { s="test2"; } private static void quoteParam(Integer in) { in = 20; } private static void quoteParam(Student st) { st.setName("li"); } private static void basicParam(int i) { i=20; } }