Java

[Java] ์ž๋ฐ”์˜ ํŒŒ๋ผ๋ฏธํ„ฐ

newkr 2022. 9. 27. 00:48
728x90

๐Ÿ“ ํŒŒ๋ผ๋ฏธํ„ฐ๋ž€?

 ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋„ˆ์ฒ˜ ๋งˆ์ง€๋ง‰ ๊ด„ํ˜ธ ์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์•„์˜จ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ , ์ดํ›„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

public class Parameter {
    public static void main(String[] args) {
        System.out.println(parameterMethod(10, "30"));
    }

    public static int parameterMethod(int i, String s) {
        return i + Integer.parseInt(s);
    }
}

 parameterMethod๋Š” intํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜ i์™€ ์ˆซ์ž๋กœ ๋ฐ›์€ Stringํ˜• s๋ฅผ ๋”ํ•œ ๊ฐ’์„ returnํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ๊ฐ„๋‹จํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฑฐ๋ผ ํฌ๊ฒŒ ์™€๋‹ฟ์ง€๋Š” ์•Š์ง€๋งŒ, ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋ฐฐ์—ด ํ˜น์€ ๊ฐ์ฒด๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค๋ฉด ํ•ด๋‹น ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์— ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋ณ„๋„์˜ ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ํ•ด๋‹น ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ ์ž์ฒด๊ฐ€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ๊ฒƒ๊ณผ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๐Ÿ‘€ ์ž๋ฐ”์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹

 ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์—๋Š” 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. Pass by Value, Pass by Reference๊ฐ€ ๊ทธ๊ฒƒ์ด๋‹ค. ์ง์—ญํ•˜๋ฉด ๊ฐ’์— ์˜ํ•œ ํ†ต๊ณผ, ์ฐธ์กฐ์— ์˜ํ•œ ํ†ต๊ณผ์ธ๋ฐ, ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ๊ฐ๊ฐ ๊ฐ’์„ ์ง์ ‘ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์ฃผ์†Œ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค.

 ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์€ ํ•ด๋‹น ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ์ด๋Š” ๋ณต์‚ฌํ•œ ๊ฐ’์„ ์ˆ˜์ •ํ•œ๋‹ค๊ณ  ํ•ด์„œ ์›๋ณธ ๊ฐ’์ด ์ˆ˜์ •๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฃผ์†Œ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์€ ๊ฐ’์„ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ฐ’์ด ์œ„์น˜ํ•œ ์žฅ์†Œ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’์„ ์ˆ˜์ •ํ•˜๋ฉด ์›๋ณธ ๊ฐ’์ด ์ˆ˜์ •๋œ๋‹ค. ์ด์ค‘ ์ž๋ฐ”์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹์€ ๋ชจ๋‘ Pass by Value์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์€ ๊ฐ’์„ ํ•ด๋‹น ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ์ˆ˜์ •ํ•œ๋‹ค๊ณ  ํ•ด์„œ, ์‹ค์ œ ์›๋ณธ ๋ฐ์ดํ„ฐ ๊ฐ’์— ์˜ํ–ฅ์„ ์ฃผ์ง€๋Š” ๋ชปํ•œ๋‹ค. ๊ทธ๋ž˜์„œ "ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์€ ๊ฐ’์„ ์ˆ˜์ •ํ–ˆ๋Š”๋ฐ ์™œ ์•ˆ ๋ฐ”๋€Œ์—ˆ์ง€?"๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ„์ด ๊ณ„์‹œ๋‹ค๋ฉด ์ž๋ฐ”์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€ํ•ด์„œ ํ•œ ๋ฒˆ ๋” ์‚ดํŽด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 Pass by Reference๋กœ ๋™์ž‘ํ•˜๋Š” ์–ธ์–ด๋„ ๋งŽ์ด ์กด์žฌํ•˜๋Š”๋ฐ, ๊ทธ ์ค‘ ๋Œ€ํ‘œ์ ์ธ ์–ธ์–ด๋Š” C#์ด๋‹ค. Java์™€ ํ•จ๊ป˜ ๋Œ€ํ‘œ์ ์ธ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์ธ๋ฐ C#์€ ๋ชจ๋“  ๊ฐ’์ด Pass by Reference๋กœ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์‚ฌ๋œ ๊ฐ’์„ ์ˆ˜์ •ํ•˜๋ฉด ์›๋ณธ ๊ฐ’์ด ๋ณ€ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋ณด๋‹ค ๋” ๊ตฌ์ฒด์ ์ธ ์„ค๋ช…์„ ์œ„ํ•ด์„œ๋Š” ๊ทธ๋ฆผ์ด ๋„ˆ๋ฌด ๋งŽ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—.. ์—ฌ๊ธฐ์„œ ๋งˆ์น˜๋„๋ก ํ•˜๊ฒ ๋‹ค.๐Ÿ™„

728x90