๐Ÿ“•JAVA

[JAVA] ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•

๋น™๋””์šฉ 2023. 6. 13.

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)

- ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ์ˆ˜๋™์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•ด์•ผ ๋œ๋‹ค

 

์ถœ์ฒ˜ : ๊น€์˜ํ•œ์˜ ์‹ค์ „ ์ž๋ฐ”-๊ธฐ๋ณธํŽธ 

๋Œ“๊ธ€