๋ณ์์ ๊ธฐ๋ณธ ์๋ฃํ : int, long, float,double
์ฐธ์กฐ ์๋ฃํ : String, Student
์ฐธ์กฐ ์๋ฃํ
object๋ฅผ ์ฐธ์กฐํ๊ธฐ ์ํด์๋ ๊ธฐ๋ณธํ์ด์๋ reference type ๋ณ์ (์ฐธ์กฐ๋ณ์)๋ฅผ ์ฌ์ฉํ๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฐ์ฒด๋ณ์๋ฅผ ํตํด ๋ณ์์, ํจ์๋ฅผ ์ ๊ทผํ๋ค.
class Foo{
int value;
}
class Poo {
public static void swapPrimitive(int x, int y) {
// ๊ธฐ๋ณธํ ํ์
์ด๋ค.
// int x, int y์ ์ฌ๋ณธ์ด ๋์ด์จ๋ค.
int temp=x;
x=y;
y=temp;
}
public static void swapReference(Foo x, Foo y) {
// ์ฐธ์กฐํ ํ์
์ด๋ค.
// ์ฌ๋ณธ์ด ์๋ ํด๋น ๋ณ์๋ฅผ ์ง์ ๊ฐ๋ฆฌํจ๋ค.
int temp = x.value;
x.value = y.value;
y.value = temp;
}
}
public class Main2 {
public static void main(String[] args) {
int x=10;
int y=20;
Poo.swapPrimitive(x, y);
System.out.println(x+","+y); // 10,20 (๋ณํ ์์)
Foo f1 = new Foo();
Foo f2 = new Foo();
f1.value = 10;
f2.value = 20;
Poo.swapReference(f1, f2);
System.out.println(f1.value+","+ f2.value); // 20,10
}
}