๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ชฉ๋ก์ด ์—†์Šต๋‹ˆ๋‹ค.

[JAVA] ๋ฉ”์„œ๋“œ(Method)

๐Ÿ—ฃ Language/JAVA

    JAVAJAVA



    ๋ชฉ์ฐจ



    ์„ ์–ธ ์œ„์น˜์— ๋”ฐ๋ฅธ ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜

    ์ž๋ฐ”์—์„œ๋Š” ํด๋ž˜์Šค ์•ˆ์— ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ ์ด ์•ˆ์—์„œ๋„ ์–ด๋Š ์˜์—ญ์— ์„ ์–ธ์„ ํ•ด์ฃผ๋Š๋ƒ์— ๋”ฐ๋ผ ์ข…๋ฅ˜๊ฐ€ ๋‹ฌ๋ผ์ง€๊ณ  ์ƒ์„ฑ์‹œ๊ธฐ๊ฐ€ ๋‹ค๋ฅด๋‹ค.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Class Variables
    {
        int iv;            // ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
        static in cv;    // ํด๋ž˜์Šค ๋ณ€์ˆ˜ (static ๋ณ€์ˆ˜, ๊ณต์œ  ๋ณ€์ˆ˜)
     
        void method()
        {
            int lv = 0;    // ์ง€์—ญ๋ณ€์ˆ˜
        }
    }
    cs


    ์œ„์˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•ด์ค€ ๊ฒฝ์šฐ ๊ฐ ๋ณ€์ˆ˜๋“ค์˜ ์ฐจ์ด๋Š” ๋‹ค์Œ ํ‘œ์™€ ๊ฐ™๋‹ค


    ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜ 

    ์„ ์–ธ ์œ„์น˜ 

    ์ƒ์„ฑ์‹œ๊ธฐ 

     ํด๋ž˜์Šค ๋ณ€์ˆ˜

    ํด๋ž˜์Šค์˜์—ญ 

     ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ๋•Œ

     ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜

     ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์„ ๋•Œ

     ์ง€์—ญ ๋ณ€์ˆ˜

    ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž, ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ ๋‚ด๋ถ€ ๋“ฑ

     ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ์ด ์ˆ˜ํ–‰๋˜์—ˆ์„ ๋•Œ



    ์ถ”๊ฐ€์ ์œผ๋กœ ๊ฐ๊ฐ์˜ ๋ณ€์ˆ˜๋“ค์ด JVM์˜ ๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ ์˜์—ญ์˜ ์–ด๋””์— ์˜ฌ๋ผ๊ฐ€๋Š”์ง€ ์‚ดํŽด๋ณด๋ฉด


    Runtime Data AreaRuntime Data Area


    ๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ ์˜์—ญ์€ ํฌ๊ฒŒ 5๊ฐ€์ง€๋กœ ๋˜์–ด์žˆ๋‹ค

    ์ด ์ค‘ ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ๋ฉ”์„œ๋“œ ์˜์—ญ(Method Area)์— JVM์ด ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์˜ฌ๋ผ๊ฐˆ ๋•Œ ํ•จ๊ป˜ ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋œ๋‹ค. ๋ฉ”์„œ๋“œ ์˜์—ญ์€ ํ•˜๋‚˜์ด๊ณ  ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณต์œ ํ•˜๊ฒŒ ๋œ๋‹ค


    ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋Š” ํž™(Heap)์— ์ƒ์„ฑ์ด ๋˜๊ณ  ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ๋งˆ๋‹ค ํ•จ๊ป˜ ์ƒ์„ฑ๋œ๋‹ค



    Stack FrameStack Frame



    ์ง€์—ญ๋ณ€์ˆ˜๋Š” JVM Stack ์•ˆ์— ์ƒ์„ฑ์ด ๋˜๋Š”๋ฐ JVM์„ ๊ณต๋ถ€ํ•  ๋•Œ ์ •๋ฆฌํ–ˆ๋“ฏ์ด JVM Stack ์•ˆ์—๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ ๋  ๋•Œ ์Šคํƒํ”„๋ ˆ์ž„์ด ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์ด๊ฒŒ ๋˜๋Š”๋ฐ ๊ทธ ์Šคํƒํ”„๋ ˆ์ž„ ์•ˆ์— ์ง€์—ญ๋ณ€์ˆ˜ ๋ฐฐ์—ด(Local Variable Array) ๋ถ€๋ถ„์— ์œ„์น˜๋œ๋‹ค. ์ง€์—ญ๋ณ€์ˆ˜ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š”๋ฐ 0์€ ๋ฉ”์„œ๋“œ๊ฐ€ ์†ํ•œ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์˜ this ๋ ˆํผ๋Ÿฐ์Šค์ด๊ณ , 1๋ถ€ํ„ฐ๋Š” ๋ฉ”์„œ๋“œ์— ์ „๋‹ฌ๋œ ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์ด ์ €์žฅ๋˜๋ฉฐ, ๋ฉ”์„œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ ์ดํ›„์—๋Š” ๋ฉ”์„œ๋“œ์˜ ์ง€์—ญ ๋ณ€์ˆ˜๋“ค์ด ์ €์žฅ๋œ๋‹ค.


    ์—ฌ๊ธฐ์„œ ๊ถ๊ธˆํ•œ ์ ์€ ๊ทธ๋Ÿผ ์–ด๋–จ ๋•Œ ํด๋ž˜์Šค ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ƒ์ธ๋ฐ

    ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ๊ณต์œ ํ•œ๋‹ค๋Š” ์ ์—์„œ ํžŒํŠธ๋ฅผ ๋ฐ›์œผ๋ฉด ๊ณตํ†ต์ ์ธ ํŠน์„ฑ์„ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์„ ์–ธํ•ด์ฃผ๊ณ  ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋Š” ๊ฐ๊ฐ ๊ณ ์œ ์˜ ํŠน์„ฑ์„ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์„ ์–ธํ•ด์ฃผ๋ฉด ๋œ๋‹ค





    ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์นด๋“œ๊ฐ€ ์žˆ์„ ๋•Œ ์นด๋“œ์˜ ๊ฐ ๋ฌธ์–‘๋“ค์€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•˜๋ฉด ์ข‹๊ณ  ์นด๋“œ๋“ค์˜ ๊ณตํ†ต์ ์ธ ํŠน์„ฑ์ธ ๊ฐ€๋กœํญ๊ณผ ์„ธ๋กœํญ์€ ํด๋ž˜์Šค ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค ( ๋ฌผ๋ก  ์ •๋‹ต์€ ์—†๋‹ค )


    ์ž๋ฐ” ๋ฉ”์„œ๋“œ(Method)


    ๋ณดํ†ต ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›์•„ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ผ๋Š” ๊ฒƒ์ด ์กด์žฌํ•˜๋Š”๋ฐ ์ž๋ฐ”์—์„œ๋Š” ํด๋ž˜์Šค ๋ฐ–์— ์กด์žฌํ•˜๋Š”๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํด๋ž˜์Šค ๋‚ด์— ํ•จ์ˆ˜๊ฐ€ ์กด์žฌ ํ•œ๋‹ค. ์ด ํด๋ž˜์Šค ๋‚ด์˜ ํ•จ์ˆ˜๋ฅผ ๋ฉ”์„œ๋“œ(Method)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

    ( ์ฐธ๊ณ  - ํŒŒ์ด์ฌ๊ณผ ๊ฐ™์ด ํ•จ์ˆ˜์™€ ๋ฉ”์„œ๋“œ๊ฐ€ ๊ณต์กดํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ ๋ช…์นญ์„ ๊ตฌ๋ถ„ํ•ด์„œ ๋ถ€๋ฆ„. ์ž๋ฐ”์˜ ๊ฒฝ์šฐ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์ •ํ™•ํ•œ ๋ช…์นญ )


    ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  ์šฐ์„  ๊ทธ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

    ์ฝ”๋”ฉ์„ ํ•˜๋‹ค๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋“ฑ์žฅํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ ์ฝ”๋“œ๋ฅผ ๋ฉ”์„œ๋“œ๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด ์ข‹๋‹ค ( ๋ฌผ๋ก  ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค )


    ์ž๋ฐ”์—์„  ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ(์ž๋ฐ” API)๊ฐ€ ์žˆ๊ณ  ๊ทธ ํ™œ์šฉ๋„ ๋˜ํ•œ ๋†’๋‹ค. ๋‚ด๊ฐ€ ๋งŒ๋“ค์ง€ ์•Š์€ ๋ฉ”์„œ๋“œ์ด์ง€๋งŒ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ์–ด๋–ค ์ธ์ž๊ฐ€ ํ•„์š”ํ•˜๊ณ  ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ์–ด๋–ค ๊ฐ’์ด ๋ฐ˜ํ™˜๋˜๋Š”์ง€๋งŒ ์•Œ๋ฉด ์šฐ๋ฆฌ๋Š” ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์„ฑ์„ ๋ณด๊ณ  ๋ฉ”์„œ๋“œ๋ฅผ ๋ธ”๋ž™๋ฐ•์Šค๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.


    ๋ฉ”์„œ๋“œ์˜ ์žฅ์ ์€ ์ž๋ฐ” API๋ฅผ ๊ฒฝํ—˜ํ•œ ๊ฒƒ ์ฒ˜๋Ÿผ ๋†’์€ ์žฌ์‚ฌ์šฉ์„ฑ์ด ์žˆ๋‹ค. ๋˜ํ•œ ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ค‘๋ณต๋œ ์ฝ”๋“œ์˜ ์ œ๊ฑฐ๋„ ์žฅ์ ์ด๋‹ค. ์ค‘๋ณต๋œ ์ฝ”๋“œ์˜ ์žฅ์ ์—์„œ ๋” ๋‚˜์•„๊ฐ€๋ฉด ์œ ์ง€๋ณด์ˆ˜์˜ ์šฉ์ด์„ฑ๋„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ค‘๋ณต๋œ ์ฝ”๋“œ๊ฐ€ ๋งŽ์œผ๋ฉด ํ•ด๋‹น ๋กœ์ง์„ ์ˆ˜์ •ํ•  ๋•Œ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜์ง€๋งŒ ํ•˜๋‚˜์˜ ๋ฉ”์„œ๋“œ๋กœ ๋งŒ๋“ค์–ด๋‘๋ฉด ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ง€๋ณด์ˆ˜ ๊ด€๋ฆฌ๋„ ์‰ฝ๊ณ  ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ๋„ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋‹ค.



    ๋ฉ”์„œ๋“œ ๊ตฌ์„ฑ ์š”์†Œ

    ๋ฉ”์„œ๋“œ ์„ ์–ธ ๋ฐ ๊ตฌํ˜„๋ฉ”์„œ๋“œ ์„ ์–ธ ๋ฐ ๊ตฌํ˜„


    ๋ฉ”์„œ๋“œ์˜ ๊ตฌ์„ฑ ์š”์†Œ

    1. ์„ ์–ธ๋ถ€ (๋ฐ˜ํ™˜ํƒ€์ž…, ๋ฉ”์„œ๋“œ์ด๋ฆ„, ๋งค๊ฐœ๋ณ€์ˆ˜)

    2. ๊ตฌํ˜„๋ถ€ (์ˆ˜ํ–‰ ๋ฌธ์žฅ, return๋ฌธ)


    ๋ฉ”์„œ๋“œ๋Š” ์„ ์–ธ๋ถ€์™€ ๊ตฌํ˜„๋ถ€๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋Š”๋ฐ ์„ ์–ธ๋ถ€์—๋Š” ๋ฐ˜ํ™˜ ํƒ€์ž…, ๋ฉ”์„œ๋“œ ์ด๋ฆ„, ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ์–ธ์ด ๋“ค์–ด๊ฐ„๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•„์š”ํ•œ ๋งŒํผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๊ณ  ๊ฐ ๋ณ€์ˆ˜ ๊ฐ„์˜ ๊ตฌ๋ถ„์€ ์‰ผํ‘œ(,)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.


    ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ ์ฃผ์˜ํ•  ์ ์€ ์ผ๋ฐ˜ ๋ณ€์ˆ˜์™€๋Š” ๋‹ฌ๋ฆฌ ํƒ€์ž…์ด ๊ฐ™์•„๋„ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ์ƒ๋žต ํ•  ์ˆ˜ ์—†๋‹ค.


    1
    2
    3
    void print (int x, int y)    {}    // OK
     
    void print (int x, y)     {}    // ์—๋Ÿฌ, ๋งค๊ฐœ๋ณ€์ˆ˜ y์˜ ํƒ€์ž…์ด ์—†๋‹ค.
    cs


    (๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„์€ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ•จ์ถ•์ ์ด๋ฉด์„œ ์˜๋ฏธ์žˆ๋Š” ์ด๋ฆ„์œผ๋กœ ์ง“๋„๋ก ๋…ธ๋ ฅํ•ด์•ผํ•œ๋‹ค.)


    ๊ตฌํ˜„๋ถ€์—๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ ์ˆ˜ํ–‰๋  ์ฝ”๋“œ์™€ return๋ฌธ์ด ๋“ค์–ด๊ฐ„๋‹ค. ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” ํ•˜๋‚˜์˜ return๋ฌธ์ด ์กด์žฌํ•ด์•ผ ํ•˜๋Š”๋ฐ ๋ฐ˜ํ™˜ํƒ€์ž…์ด void์ธ ๊ฒฝ์šฐ์—๋Š” return๋ฌธ์ด ์—†์–ด๋„ ๋ฌธ์ œ๊ฐ€ ์—†๋Š”๋ฐ ์ด๋Š” return๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ return; ์„ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


    ** return๊ฐ’์˜ ํƒ€์ž…์€ ๋ฐ˜ํ™˜ํƒ€์ž…๊ณผ ์ผ์น˜ํ•˜๊ฑฐ๋‚˜ ์ ์–ด๋„ ์ž๋™ ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด์–ด์•ผ ํ•œ๋‹ค

    (์ฐธ๊ณ  - ๋ฐฐ์—ด, ์ธ์Šคํ„ด์Šค ์ด์šฉํ•˜๋ฉด ๋‘˜ ์ด์ƒ์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค) 



    1
    2
    3
    4
    5
    6
    7
    8
    9
    void printAdd (int x, int y)    {
        int result = x + y;
        System.out.println(result);
    }
     
    void printMultiply (int x, int y)     {
        int result = x * y;
        System.out.println(result);
    }
    cs


    ๋ฉ”์„œ๋“œ์—์„œ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๋ฉด ์ข‹์€ ๊ฒƒ์ด ๋ฐ”๋กœ ์ง€์—ญ๋ณ€์ˆ˜ ๊ฐœ๋…์ธ๋ฐ ์œ„์— ์ •์˜๋œ ๋‘ ๋ฉ”์„œ๋“œ์—์„œ ์„ ์–ธ๋œ ์ง€์—ญ๋ณ€์ˆ˜๋Š” x, y, result๋กœ ๊ฐ™์€ ์ด๋ฆ„์ด์ง€๋งŒ ๋ฌธ์ œ์—†๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๋ฆ„๋งŒ ๊ฐ™์„ ๋ฟ ์„œ๋กœ ๋‹ค๋ฅธ ๊ณต๊ฐ„์— ์กด์žฌํ•˜๋Š” ๋‹ค๋ฅธ ๋ณ€์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฉ”์„œ๋“œ๋Š” ํ•˜๋‚˜์˜ ์Šคํƒํ”„๋ ˆ์ž„์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ฐ ๋ฉ”์„œ๋“œ๋“ค์€ ๊ฐ์ž์˜ ์Šคํƒํ”„๋ ˆ์ž„์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ ๋‹ค๋ฅธ ๊ณต๊ฐ„์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.


    ๋ฉ”์„œ๋“œ ํ๋ฆ„


    ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์ง€๊ธˆ๊นŒ์ง€ ์‹คํ–‰๋˜๋˜ ๋ฉ”์„œ๋“œ๋Š” ์ž ์‹œ ๋ฉˆ์ถ”๊ณ  ํ˜ธ์ถœ๋œ ๋ฉ”์„œ๋“œ์˜ ์ฝ”๋“œ๋“ค์ด ์‹คํ–‰๋œ๋‹ค. ํ˜ธ์ถœ๋œ ๋ฉ”์„œ๋“œ์˜ ์ž‘์—…์ด ๋ชจ๋‘ ๋๋‚˜๋ฉด ๋‹ค์‹œ ํ˜ธ์ถœํ•œ ๋ฉ”์„œ๋“œ๋กœ ๋Œ์•„์™€ ์ดํ›„์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.


    ๋ฉ”์„œ๋“œ ํ๋ฆ„๋ฉ”์„œ๋“œ ํ๋ฆ„


    1. ๋ฉ”์„œ๋“œ add ํ˜ธ์ถœ. ํ˜ธ์ถœ ์‹œ ์ง€์ •ํ•œ 1L๊ณผ 2L์ด ๋ฉ”์„œ๋“œ add์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ a, b์— ๊ฐ๊ฐ ๋ณต์‚ฌ๋œ๋‹ค.

    * ๋ฉ”์„œ๋“œ add์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ํƒ€์ž…์ด long์ด๋ฏ€๋กœ long ๋˜๋Š” long์œผ๋กœ ์ž๋™ ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•œ ๊ฐ’์„ ์ „๋‹ฌํ•ด์•ผํ•จ

    2. ๋ฉ”์„œ๋“œ add์˜ ๊ตฌํ˜„๋ถ€ ์ฝ”๋“œ๊ฐ€ ์ˆ˜ํ–‰๋œ๋‹ค

    3. ๋ชจ๋“  ๋ฌธ์žฅ์ด ์‹คํ–‰๋˜๊ฑฐ๋‚˜ return๋ฌธ ๋งŒ๋‚˜๋ฉด ํ˜ธ์ถœํ•œ ๋ฉ”์„œ๋“œ๋กœ ๋˜๋Œ์•„์™€์„œ ์ดํ›„ ๋ฌธ์žฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

    * ๋ฐ˜ํ™˜๊ฐ’์„ ์ €์žฅํ•˜๋Š” value์—ญ์‹œ ๋ฐ˜ํ™˜ํƒ€์ž…๊ณผ ๊ฐ™๊ฑฐ๋‚˜ ์ž๋™ ํ˜•๋ณ€ํ™˜๋˜์–ด ์ €์žฅ๋  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์ด์–ด์•ผํ•จ




    ๋งค๊ฐœ๋ณ€์ˆ˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ


    ๋ฉ”์„œ๋“œ์˜ ๊ตฌํ˜„๋ถ€๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, ์ œ์ผ ๋จผ์ € ํ•ด์•ผํ•  ์ž‘์—…์ด ๋ฐ”๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ์ ์ ˆํ•œ์ง€ ํ™•์ธํ•˜๋Š” ์ž‘์—…์ด๋‹ค. 'ํ˜ธ์ถœํ•˜๋Š” ์ชฝ์—์„œ ์•Œ์•„์„œ ์ ์ ˆํ•œ ๊ฐ’์„ ๋„˜๊ฒจ์ฃผ๊ฒ ์ง€' ๋ผ๋Š” ์ƒ๊ฐ์„ ๋ฒ„๋ ค์•ผ๋งŒ ํ•œ๋‹ค. ํƒ€์ž…๋งŒ ๋งž์œผ๋ฉด ์–ด๋–ค ๊ฐ’๋„ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๋„˜์–ด์˜ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•˜๊ณ  ๊ทธ์— ๋Œ€๋น„ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผํ•œ๋‹ค. ์ ์ ˆํ•˜์ง€ ์•Š์€ ๊ฐ’์ด ๋“ค์–ด์™”์„ ๋•Œ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณด์ •ํ•˜๋˜๊ฐ€, ๋ณด์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ค‘๋‹จ์‹œํ‚ค๊ณ  ํ˜ธ์ถœํ•œ ๋ฌธ์žฅ์œผ๋กœ ๋˜๋Œ๋ ค๋ณด๋‚ด์•ผํ•œ๋‹ค. ๊ฐ„๊ณผํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด๋‹ค.



     ์ฐธ๊ณ ์„œ์  : Java์˜ ์ •์„ 3rd Edtion

    ์ฐธ๊ณ ์ž๋ฃŒ : http://steady-snail.tistory.com/67?category=780927