ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ์ƒ๊ฐ: Java์—๋Š” ์™œ const(์ƒ์ˆ˜)๊ฐ€ ์—†์„๊นŒ?
    Java 2022. 3. 5. 19:12

    ๐Ÿ™‹ Java์—๋Š” ์™œ const(์ƒ์ˆ˜)๊ฐ€ ์—†๋‚˜์š”?

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

    ๐Ÿ“ ๋‚ด์šฉ์ด ๋„ˆ๋ฌด ๊ธธ์–ด์„œ, ์„ธ ์ค„ ์š”์•ฝ

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

    ์ด์ œ ์ด์œ ๊ฐ€ ๊ถ๊ธˆํ•œ ์‚ฌ๋žŒ๋งŒ ์•„๋ž˜ ๋‚ด์šฉ์„ ์ฝ์–ด๋ณด๋„๋ก ํ•˜์ž.

    โ“๏ธŽ final๋งŒ ์จ๋„ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š”๋ฐ ์™œ static๊นŒ์ง€ ๋ถ™์–ด์•ผ ์ƒ์ˆ˜์ธ๊ฐ€์š”?

    ์–ด์ œ ์ €๋…, ๊ฐœ๋ฐœ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ํ•œ ๋ถ„์ด Java์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ ์˜ฌ๋ ค์ฃผ์…จ๋‹ค.

    final๋งŒ ์จ๋„ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š”๋ฐ ์™œ final๋งŒ ๋ถ™์œผ๋ฉด ์ƒ์ˆ˜๊ฐ€ ์•„๋‹ˆ๊ณ  static๊นŒ์ง€ ๋ถ™์–ด์•ผ ์ƒ์ˆ˜์ธ๊ฐ€์š”?
    ์–ด๋–ค ์ฑ…์—์„œ๋Š” final๋„ ์ƒ์ˆ˜๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์‹ค์ œ๋กœ๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ƒ์ˆ˜๋ฅผ ์“ธ ๋•Œ static final๋กœ ์“ฐ๋Š” ๊ฒƒ ๊ฐ™์•„์š”. ์ด์œ ๊ฐ€ ๋ญ˜๊นŒ์š”?

    ๋‚˜๋„ final๊ณผ static์˜ ์‚ฌ์šฉ๋ฒ• ์ •๋„๋Š” ์ž˜ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ณ (๊ฑด๋ฐฉ์ง€๊ฒŒ๋„) ์‰ฌ์šด ์งˆ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ๋‹ต์„ ํ•˜๋ ค๋‹ˆ๊นŒ ๋ญ”๊ฐ€ ๊ป˜๋ฆ„์น™ํ•จ์ด ์žˆ์—ˆ๋‹ค.
    ๋‚˜๋ฆ„๋Œ€๋กœ์˜ ๋‹ต๋ณ€์„ ์ ์—ˆ๋‹ค ์ง€์› ๋‹ค ๋ฐ˜๋ณตํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ๋‹ต๋ณ€์ด ๋น ๋ฅด๊ฒŒ ๋‹ฌ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.
    ๋‹ต๋ณ€์€ ํฌ๊ฒŒ ์„ธ๊ฐ€์ง€ ํŒŒ๋กœ ๋‚˜๋‰˜์—ˆ๋‹ค.

    ๋จผ์ € 'final๋งŒ์œผ๋กœ๋„ ์ƒ์ˆ˜๋‹ค'ํŒŒ.

    1. ํ”„๋กœ๊ทธ๋žจ ์ƒ์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์ˆ˜๋ผ๊ณ  ์ •์˜ํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— final๋งŒ์œผ๋กœ๋„ ์ƒ์ˆ˜๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.
    2. ์›์‹œ(Primitive) ํƒ€์ž… ๋ณ€์ˆ˜๋ฅผ final๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด, ๋”์ด์ƒ ๋ณ€๊ฒฝ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋‹ค. ๊ทธ๋Ÿฌ๋ผ๊ณ  final์ด ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
    3. 'ใ„ด' ๊ฐ•์‚ฌ๋‹˜์˜ Java ๊ฐ•์˜์—์„œ๋„ final๋กœ ์ •์˜๋œ ๋ณ€์ˆ˜๋ฅผ ์ƒ์ˆ˜๋ผ๊ณ  ํ•˜์‹ ๋‹ค. (์ •๋ง ๊ทธ๋Ÿฐ์ง€ ํ™•์ธํ•ด๋ณด์ง€๋Š” ๋ชปํ–ˆ์Œ)

    ๊ทธ ๋‹ค์Œ 'static final์ด ์ƒ์ˆ˜๋‹ค'ํŒŒ.

    1. final ๋ณ€์ˆ˜๋Š” ์ƒ์„ฑ์ž์—์„œ ๊ฐ’์„ ์ดˆ๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ–๋Š” ๋ณ€์ˆ˜๋ฅผ ์ƒ์ˆ˜๋ผ๊ณ  ํ•  ์ˆ˜๋Š” ์—†๋‹ค.
    2. ์žฌํ• ๋‹น์ด ์•ˆ๋˜๋Š” ๊ฒƒ์ด์ง€ ๊ฐ์ฒด ์ž์ฒด์˜ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
    3. ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™” ์‹œ์ ์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ƒ์ˆ˜๋ผ๊ณ  ํ•  ์ˆ˜ ์—†์ง€ ์•Š์„๊นŒ?

    ์–ด์ฐŒ ๋ณด๋ฉด ๋‹ค ๋น„์Šทํ•œ ๋ง ๊ฐ™์ง€๋งŒ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ๋“ค์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
    ์–ด์จŒ๋“  ๋งˆ์ง€๋ง‰์€ 'Java์—๋Š” ์ƒ์ˆ˜๊ฐ€ ์—†๋‹ค'ํŒŒ๋‹ค.

    1. Java๋Š” ๊ณต์‹์ ์œผ๋กœ ์ƒ์ˆ˜๋ฅผ ์ง€์›ํ•˜์ง€๋Š” ์•Š์„ ๊ฑฐ๋‹ค. ์ƒ์ˆ˜ ๋น„์Šทํ•˜๊ฒŒ ์“ด๋‹ค๊ณ  ํ•˜๋Š” ๊ฒŒ ๋งž๋Š” ๊ฒƒ.
    2. ์ปดํŒŒ์ผ ํƒ€์ž„ ์ƒ์ˆ˜, ๋Ÿฐํƒ€์ž„ ์ƒ์ˆ˜ ์ •๋„๋กœ ๋‚˜๋ˆ ์„œ ๋ณผ ์ˆ˜ ์žˆ๊ฒ ์ง€. ํ•˜์ง€๋งŒ ์ฝ๊ธฐ ์ „์šฉ ๋ณ€์ˆ˜๋ผ๋Š” ํ‘œํ˜„์ด ๋” ์ ํ•ฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

    ๋“ค์–ด๋ณด๋ฉด ๋‹ค ์ผ๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฉด์„œ ๋ญ”๊ฐ€ ์„์—ฐ์น˜ ์•Š์€ ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค(?). ์–ด์จŒ๋“  ๋‹น์‹œ์— ๋‚˜๋Š” ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ–ˆ๋‹ค.

    1. ์›์‹œํƒ€์ž…์— final์ด ๋ถ™์œผ๋ฉด ์ƒ์ˆ˜
    2. ๊ฐ์ฒด๊ฐ€ final์ธ ๊ฒฝ์šฐ, Immutableํ•˜๋‹ค๋ฉด ์ƒ์ˆ˜, ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๋ณด์žฅํ•  ์ˆ˜ ์—†๋‹ค.
    3. ๊ฐ์ฒด์˜ ํ•„๋“œ๊ฐ€ final์ธ ๊ฒฝ์šฐ์—๋Š” ์ƒ์ˆ˜์ง€๋งŒ ์ธ์Šคํ„ด์Šค ๋กœ๋“œ ์‹œ ์ดˆ๊ธฐํ™”๋˜๊ณ , static final์ธ ๊ฒฝ์šฐ์—๋Š” ์ƒ์ˆ˜์ง€๋งŒ ํด๋ž˜์Šค ๋กœ๋“œ ์‹œ ์ •์  ์ดˆ๊ธฐํ™” ๋œ๋‹ค.

    ๋‚˜๋Š” ์ž˜ ์ •๋ฆฌํ–ˆ๋˜ ๊ฑธ๊นŒ? ๋‚˜๋ฆ„๋Œ€๋กœ ์ทจํ•ฉํ•œ ๋‚ด์šฉ์ด๊ธด ํ•˜๋‹ค.
    ๊ทธ๋ž˜์„œ ์˜ณ์€ ๋‚ด์šฉ์ธ๊ฐ€ ํ•˜๋ฉด, ํ•œ๋งˆ๋””๋กœ ์™„์ „ ์—‰๋ง์ธ ์ •๋ฆฌ๋‹ค.

    ๐Ÿค” ์ƒ์ˆ˜๊ฐ€ ๋ญ”๋ฐ์š”

    ์™œ ๋ชจ๋“  ์˜๊ฒฌ์ด ์ผ๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฉด์„œ๋„ ์ƒ์ถฉ๋˜๋Š” ๊ฒƒ์ผ๊นŒ?
    ํ•˜๋ฃป๋ฐค ์ž๊ณ  ์•„์นจ์— ์ผ์–ด๋‚˜ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ, '์ƒ์ˆ˜๋Š” ๊ณ ์ •๋œ ๊ฐ’์ด๋‹ค'๋ผ๋Š” ์ƒ์ˆ˜์˜ ๋Œ€ํ‘œ์ ์ธ ํŠน์„ฑ ์™ธ์—๋Š” ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ •์˜๋ฅผ ๊ฐ–๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

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

    1. '์ƒ์ˆ˜'๋ฅผ ๋งํ•  ๋•Œ ํ•ญ์ƒ 'ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ์ƒ์ˆ˜'๋งŒ์„ ๋งํ•˜๋Š” ๊ฒƒ๋งŒ์€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜คํ•ด์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค(์‹ค์ œ์™€ ๋Œ€์‘๋˜์–ด์•ผ ํ•˜๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํŠน์„ฑ ๋•Œ๋ฌธ์— ๋”์šฑ).
    2. ๋˜ํ•œ 'ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ์ƒ์ˆ˜'๋Š” ๋‹จ์ˆœํžˆ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์งํ›„๋ถ€ํ„ฐ ๋๋‚  ๋•Œ๊นŒ์ง€ ๋™์ผํ•œ ๊ฐ’์œผ๋กœ ์กด์žฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— final๋งŒ์œผ๋กœ๋Š” ์ƒ์ˆ˜๋ผ ํ•  ์ˆ˜ ์—†๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ์‚ฌ๋žŒ๋“ค ๊ฐ„์˜ ๊ทœ์น™์— ๋”ฐ๋ผ ์ƒ์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”, ๋ณ€์ˆ˜๋‹ค.

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

    1. static final๋กœ ํ•ด์•ผํ•˜๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•˜์ง€๋Š” ๋ชปํ•œ๋‹ค. ๊ทธ๋Ÿฐ ์ด์œ ์—์„œ๋ผ๋ฉด Java๋„ const๋ฅผ ์ง€์›ํ•ด์•ผ์ง€, ์™œ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๊ฑด๊ฐ€?
    2. ๊ฐ์ฒด ์•ˆ์— ์ƒ์„ฑ์ž์—์„œ final ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด์„œ "์ด๊ฑด ์ƒ์ˆ˜์•ผ"๋ผ๊ณ  ๋งํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์—†๋‹ค(์—†๊ธธ ๋ฐ”๋ž€๋‹ค). ๊ทธ๋Ÿฌํ•œ ์˜ˆ์ œ๋ฅผ ์›น ์ƒ์—์„œ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ฑด final ํ•„๋“œ๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•˜๋Š” ์‹œ์ ์— ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฑธ ๋ณด์—ฌ์ฃผ๋ ค๋Š” ๋ชฉ์ ์ธ ๊ฑฐ์ง€, final์ด ์ƒ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ž€ ๊ฑธ ์ฆ๋ช…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๊ฐ€ ์•„๋‹ˆ๋‹ค.
    3. ๊ทธ๋Ÿผ ์ƒ์„ฑ์ž์—์„œ ์ดˆ๊ธฐํ™” ํ•˜์ง€ ์•Š๊ณ  final ํ•„๋“œ์— ๋ฆฌํ„ฐ๋Ÿด๋กœ ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ์žˆ๋‹ค๋ฉด, ๊ทธ ๊ฐ์ฒด์˜ ํ•„๋“œ๋Š” ์ƒ์ˆ˜๊ฐ€ ๋˜๋‚˜?
    4. ์ธํ„ฐํŽ˜์ด์Šค๋Š”? ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ•„๋“œ๋Š” ๋ชจ๋‘ static final์ด์ง€๋งŒ(์ •ํ™•ํžˆ๋Š” public static final) ์ •์ ์˜์—ญ์—์„œ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š๊ณ  ์„ ์–ธ ์‹œ ์ดˆ๊ธฐํ™”๋œ๋‹ค.

    ์Šคํฌ๋ฅผ ํ•˜์ž๋ฉด, ์‚ฌ์‹ค 'Java์—๋Š” ์ƒ์ˆ˜๊ฐ€ ์—†๋‹ค'ํŒŒ๊ฐ€ ๋งž๋Š” ๋ง์ด๋‹ค. Java๋Š” const๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋‹ˆ๊นŒ. ๊ตฌ๊ธ€๋ง ํ•˜๋‹ค๋ณด๋‹ˆ ์˜์–ด๋ฌธ์„œ(์ด์— ๊ด€ํ•œ ํ•œ๊ตญ์–ด์›น์€ ์•„์˜ˆ ๋ชป์ฐพ์•˜๋‹ค) ์ค‘์—๋Š” ์ด๋Ÿฐ๊ฒŒ ์„ค๋ช…๋„ ์žˆ์—ˆ๋‹ค: 'Java์—๋Š” const๊ฐ€ ํ•„์š”์—†์–ด์„œ ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๊ฒƒ์ด๋‹ค'.
    ํ•˜์ง€๋งŒ ์—ญ์‹œ, ์ด๋Ÿฐ ์„ค๋ช…๋งŒ ๊ฐ€์ง€๊ณ ์„œ๋Š” ๋˜๋˜ ์„ค๋ช…์˜ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.

    1. '์›๋ž˜ ~~ํ•œ ๊ฑฐ์•ผ'๋ผ๋Š” ๋ง ๋งŒํผ ๋งฅ๋น ์ง€๊ณ  ์„ค๋“๋ ฅ ์—†๋Š” ๋ง์€ ์—†๋‹ค.
    2. '์ฝ๊ธฐ ์ „์šฉ ๋ณ€์ˆ˜'๋ผ๋Š” ํ‘œํ˜„๋„ ์ข‹์ง€๋Š” ์•Š์€ ๊ฒƒ์ด, ์ƒ์ˆ˜์˜ ์ •์˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ '์ฝ๊ธฐ ์ „์šฉ ๋ณ€์ˆ˜'๋‹ค.
    3. ๊ทธ๋ ‡๋‹ค๋ฉด Java์˜ Math.PI๋Š” ์ƒ์ˆ˜์ธ๊ฐ€ ์•„๋‹Œ๊ฐ€?

    ๐Ÿค— ์•„์œ  ์ด์ œ ๊ทธ๋งŒ ๋๊ณ , ์ •๋ฆฌํ•˜์ž

    • ๋‚ด์šฉ์„ ์ฝ์—ˆ๋‹ค๋ฉด ๋‚ด๊ฐ€ ์ด์ œ ํ•  ๋ง๋„ ์ดํ•ดํ•ด์ฃผ์‹ค ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ด ๊ธ€์˜ ์—”๋”ฉ ๋ฃจํŠธ๋Š” 'ํ™ฉํฌ์ •์Šน' ๋ฃจํŠธ๋‹ค.
    • Java๋Š” const๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ ๋‹น์—ฐํ•˜๊ฒŒ๋„ ์ƒ์ˆ˜ ๊ฐœ๋…์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๊ฑด ์•„๋‹ˆ๋‹ค. ์ด๋ฏธ ๊ทธ๋ ‡๊ฒŒ๋“ค ์“ฐ๊ณ  ์žˆ๊ณ  ๋ง์ด๋‹ค.
    • '์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€, ์–ด๋–ค ๊ฐ’์„ ๊ทธ๋ƒฅ ๋‹น์—ฐํžˆ ๊ฐ–๊ฒŒ ๋˜๋Š”' const๋ž€ ์˜ˆ์•ฝ์–ด๋ฅผ ๊ฐ์ฒด์ง€ํ–ฅ์— ์ง‘์–ด๋„ฃ๊ธฐ์—๋Š” ๊ต‰์žฅํžˆ ๋‚œ๊ฐํ•˜๋‹ค๋Š” ๊ฒƒ์€ ๋‚˜๊ฐ™์€ ํ—ˆ์ ‘ ๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ๋„ ์•Œ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์‹ค์ด๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐœ๋…์„ ๊ณ ๋ คํ•ด๋„ ๊ทธ๋ ‡๊ณ (์ˆ˜ํ•™์ ์œผ๋กœ๋“  ๋ฌผ๋ฆฌ์ ์œผ๋กœ๋“ , ๊ฐ์ฒด์— ์ข…์†๋˜์ง€ ์•Š์€ ์–ด๋–ค ๊ฐ’์ด๋ž€ ๊ฑด ์กด์žฌํ•  ์ˆ˜ ์—†๋‹ค), ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ์ ‘๊ทผํ•˜๊ฒŒ ํ•˜์ง€ ์•Š๋Š” Java์˜ ์–ธ์–ด์  ํŠน์„ฑ์„ ๊ณ ๋ คํ•ด๋„ ๊ทธ๋ ‡๋‹ค(์ ‘๊ทผ๋„ ๋ชปํ•˜๋Š”๋ฐ ์ ์œ ๋ฅผ?).
    • ํ•˜์ง€๋งŒ static final์ด๋ผ๋ฉด ํด๋ž˜์Šค ์ˆ˜์ค€์˜ ๋ณ€์ˆ˜๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€์žˆ๊ณ , ๋˜ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ƒ์ˆ˜๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ interface์˜ ์˜ˆ๋ฅผ ๊ณ ๋ คํ–ˆ์„ ๋•Œ, ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(์˜ˆ๋ฅผ ๋“ค์–ด C)์—์„œ ์ œ๊ณตํ•˜๋Š” ์ƒ์ˆ˜ ๊ฐœ๋…๊ณผ๋Š” ๋‹ค๋ฅด๋‹ค๋Š” ๊ฑด ์ธ์ง€ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
    • ์ƒํ™ฉ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด final๋„ ์–ผ๋งˆ๋“ ์ง€ ์ƒ์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ์ˆ˜๊ฐ€ ํ•„์š”ํ•  ๋•Œ final๋งŒ์„ ์‚ฌ์šฉํ•˜๊ธธ ๊ณ ๋ คํ•ด๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค(๋‹ค static์œผ๋กœ ์ •์˜ํ•˜๋ฉด ์ •์ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์€ ๋ˆ„๊ฐ€ ์ง€ํ‚ค๋‚˜). ํ•˜์ง€๋งŒ ์ˆ˜ํ•™์—์„œ์˜ ์ •์˜๋กœ๋„, ๋ฌผ๋ฆฌ์ ์ธ ์ •์˜๋กœ๋„, ์‹ฌ์ง€์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ์ •์˜๋กœ๋„ '์ƒ์ˆ˜'์™€๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ง€ํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

    ๋Œ“๊ธ€

Designed by Tistory.