วันอาทิตย์ที่ 10 สิงหาคม พ.ศ. 2551

Java: จาวาส่งผ่านอาร์กิวเมนต์ด้วยวิธีการคัดลอกค่าเท่านั้น

สำหรับคนที่คุ้นเคยกับภาษา C++ คงจะรู้จักความแตกต่างของ Passed by Reference กับ Passed by Value ในการส่งค่าผ่านอาร์กิวเมนต์ และพารามิเตอร์ของฟังก์ชัน ตัวอย่างง่าย ๆ ที่เรารู้จักคือฟังก์ชัน swap:

โค๊ดโปรแกรม:

public class SwapExample {


public static void main(String[] args) {
Integer num1 = 10;
Integer num2 = 20;
System.out.println("before swap: "+num1+","+num2);
swap(num1, num2);
System.out.println("after swap: "+num1+","+num2);

}

public static void swap(Integer a, Integer b)
{
Integer temp = a;
a = b;
b = temp;
System.out.println("inside swap: "+a+","+b);
}

}

ผลลัพธ์คือ:

before swap: 10,20
inside swap: 20,10
after swap: 10,20


ONLY PASSED BY VALUE !!!!

ไม่มีความคิดเห็น: