1. ๊ธฐ๋ณธํ(Primitive Type)๊ณผ ์ฐธ์กฐํ(Reference Type)
- ๊ธฐ๋ณธํ : int, long, double, boolean ๋ฑ ๋ณ์์ ์ฌ์ฉํ ๊ฐ์ ์ง์ ๋ฃ์ ์ ์๋ ๋ฐ์ดํฐ ํ์ .
- ์ฐธ์กฐํ : Fruit fruit, int[] prices ๋ฑ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ธฐ ์ํ ์ฐธ์กฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ์ดํฐ ํ์ .
- ๊ธฐ๋ณธํ์ ์ค์ ์ฌ์ฉํ๋ ๊ฐ์ ๋ณ์์ ๋ด์ ์ ์๋ค ex) int a= 30
- ์ฐธ์กฐํ์ ์ค์ ๊ฐ์ ๋ด๋ ๊ฒ์ด ์๋ ๊ฐ์ฒด์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ค ex) fruit1.price = 2000
- ๊ธฐ๋ณธํ์ ๋ณ์์ ๊ฐ์ ๊ณ์ฐ์ ์ฌ์ฉํ ์ ์๋ค. ex) a = 30; b = 20; a+b (๊ฐ๋ฅ)
- ์ฐธ์กฐํ์ ์ฐธ์กฐ๊ฐ๋ง์ผ๋ก ๊ณ์ฐ์ ์ฌ์ฉํ ์ ์๋ค. ex) Num a = new Num(); Num b = new Num(); a+b (๋ถ๊ฐ๋ฅ)
* ๊ธฐ๋ณธํ์ ์ ์ธํ ๋๋จธ์ง๋ ๋ชจ๋ ์ฐธ์กฐํ์ด๋ค.
* ํด๋์ค๋ ๋๋ฌธ์๋ก ์์ํ๋ค.
** String์ ๊ธฐ๋ณธํ์ฒ๋ผ ์ฌ์ฉ๋์ง๋ง ํด๋์ค์ด๋ค.
2. ๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ์ ๋ฉ์๋ ํธ์ถ
* ๋์์น : ์๋ฐ๋ ํญ์ ๋ณ์์ ๊ฐ์ ๋ณต์ฌํด์ ๋์ ํ๋ค.
- ๊ธฐ๋ณธํ : ๋ฉ์๋ ๋ด๋ถ์์ ๋งค๊ฐ๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝํด๋ ํธ์ถ์์ ๋ณ์ ๊ฐ์๋ ์ํฅ์ด ์๋ค.
public Class Method1 {
public static void main(String[] args){
int a = 10;
System.out.println("๋ฉ์๋ ํธ์ถ ์ : a = " + a);
changePrimitive(a);
System.out.println("๋ฉ์๋ ํธ์ถ ํ: a = " + a);
}
static void changePrimitive(int x){
x = 20;
}
}
์คํ๊ฒฐ๊ณผ ๋ฉ์๋ ํธ์ถ ์ : a = 10 ๋ฉ์๋ ํธ์ถ ํ : a = 10 |
- ์ฐธ์กฐํ : ๋ฉ์๋ ๋ด๋ถ์์ ๋งค๊ฐ๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝ ์, ํธ์ถ์์ ๋ณ์๋ ๋ณ๊ฒฝ๋๋ค.
public class Method2 {
public static void main(String[] args) {
Data a= new Data();
a.value = 10;
System.out.println("๋ฉ์๋ ํธ์ถ ์ : dataA.value = " + dataA.value);
changeReference(a);
System.out.println("๋ฉ์๋ ํธ์ถ ํ: dataA.value = " + dataA.value);
}
static void changeReference(Data dataX) {
dataX.value = 20;
}
}
์คํ๊ฒฐ๊ณผ ๋ฉ์๋ ํธ์ถ ์ : a = 10 ๋ฉ์๋ ํธ์ถ ํ : a = 20 |
3. ๋ณ์์ ์ด๊ธฐํ
1) ๋ณ์์ ์ข ๋ฅ
- ๋ฉค๋ฒ ๋ณ์ : ํด๋์ค์ ์ ์ธ (String name, int price, int color)
- ์ง์ญ ๋ณ์ : ๋ฉ์๋์ ์ ์ธ, ๋งค๊ฐ๋ณ์๋ ์ง์ญ ๋ณ์์ ํ ์ข ๋ฅ (Fruit fruit1์ fruit1)
1) ๋ณ์์ ๊ฐ ์ด๊ธฐํ
- ๋ฉค๋ฒ ๋ณ์๋ ์๋์ผ๋ก ์ด๊ธฐํ๋๋ค (int = 0, boolean = false, ์ฐธ์กฐํ = null)
- ์ง์ญ ๋ณ์๋ ์๋์ผ๋ก ์ด๊ธฐํ ํด์ผ ๋๋ค
์ถ์ฒ : ๊น์ํ์ ์ค์ ์๋ฐ-๊ธฐ๋ณธํธ
๋๊ธ