JAVA--值传递

关于java中的值传递问题:

 

首先申明java中只有值传递!!!

 

分为两种情况而定:

 

 

  1. 基本类型的数据:传递的值为数据的拷贝。
  2. 对象类型的数据:传递的值为引用的地址(对象在内存中的地址)。

测试代码:

public class ValueTransfer {

	static void  change(int a, int b){
			int temp = 0;
			temp = a;
			a =b;
			b = temp;
			
			System.out.println("a=" + a +"b=" + b);
	}
	
	static void changeString (String str){
		str += "__SS";
		System.out.println(str);
	}
	
	static void changePersion(Person per){
		per.setName("hello");
		per.setAge(99);
		
		System.out.println(per.toString());
	}
	
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a =10;
		int b = 99;
		change(a, b);
		System.out.println("a=" + a +"b=" + b);
		
		String str = "hello";
		changeString (str);
		System.out.println(str);
		
		Person objPer = new Person();
		objPer.setAge(22);
		objPer.setName("abc");
		changePersion(objPer);
		System.out.println(objPer.toString());
		
	}

}

class Person{
	
	private String name;
	
	private int age;

	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;
	}

	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]";
	}
}
 运行结果:
a=99b=10
a=10b=99
hello__SS
hello
Person [name=hello, age=99]
Person [name=hello, age=99]
 

你可能感兴趣的:(java值传递问题)