关键词: java; 类与对象; 值传递; 参数传递;
普通数据类型作为参数传递是值传递,而对象是引用传递。
public class X { private static int a; public static void main(String [] args) { modify(a); System.out.println(a); } public static void modify(int a) { a++; } }本程序的输出为0,因为a++是对形式参数进行自增,而不是对象属性a进行自增。
对象是引用传递,当对象作为参数传递时,传递的是对象的地址 1.
class IntClass { int value; } public class RunIntClass { public static void modifyValue(IntClass s,int val) { s.value = val; } public static void main(String args[]) { IntClass a = new IntClass(); modifyValue(a,8); System.out.println(a.value); } }2.
class IntClass { int value; } public class RunIntClass { public static IntClass getInstance() {//在方法中产生对象 IntClass s = new IntClass (); s.value=8; return s; //引用返回 } public static void main(String args[]) { //调用环境中去使用 IntClass a = getInstance(); System.out.println(a.value); } }