Final Keyword

final keyword๋ฅผ ๋ถ™์ด๋ฉด ๋ฌด์–ธ๊ฐ€๋ฅผ ์ œํ•œํ•œ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒƒ์ด ๊ณตํ†ต์  ์„ฑ๊ฒฉ์ด๋‹ค

Final Class

  • ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์ƒ์†ํ•˜์ง€ ๋ชปํ•œ๋‹ค

  • String class๋„ final ์ด๋‹ค!

    • String class๋ฅผ ์ƒ์†ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค

Final Method

  • ๋‹ค๋ฅธ method์—์„œ overriding ํ•˜์ง€ ๋ชปํ•œ๋‹ค

    • ๋” ์ด์ƒ method๋ฅผ ๋ณ€ํ˜•์‹œํ‚ฌ ์ˆ˜ ์—†๋‹ค

  • sub class๋กœ ํ™•์žฅํ•˜๋ฉด์„œ ๋” ์ด์ƒ method ํ˜•ํƒœ๋ฅผ ๋ณ€ํ˜•์‹œํ‚ค์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค

    • ์ž์‹ class์—์„œ ์žฌ์ •์˜ ํ•  ์ˆ˜ ์—†๋Š” method๋กœ, ์ž์‹ class๊ฐ€ ๋ถ€๋ชจ class์˜ method ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค

    • ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ๋ฒ„๊ทธ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค!

Final Variable

  • ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ƒ์ˆ˜๊ฐ’์ด ๋˜์–ด ์ƒˆ๋กœ ํ• ๋‹นํ•  ์ˆ˜ ์—†๋Š” ๋ณ€์ˆ˜๊ฐ€ ๋œ๋‹ค

  • ์ˆ˜์ •๋  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐํ™” ๊ฐ’์€ ํ•„์ˆ˜์ ์ด๋‹ค

    • but, ๊ฐ์ฒด ์•ˆ์˜ ๋ณ€์ˆ˜๋ผ๋ฉด, ์ƒ์„ฑ์ž , static block ์„ ํ†ตํ•œ ์ดˆ๊ธฐํ™” ๊นŒ์ง€๋Š” ํ—ˆ์šฉํ•œ๋‹ค

  • ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฐ’์˜ ๋ฒ”์œ„๋Š” ๊ทธ ๋ณ€์ˆ˜์˜ ๊ฐ’ ์— ํ•œ์ •ํ•œ๋‹ค

    • ์ฆ‰ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•  ๋•Œ, ์ฐธ์กฐํ•˜๋Š” ๊ฐ์ฒด์˜ ๋‚ด๋ถ€์˜ ๊ฐ’์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค

  • public static final

    • ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•„์š” ์—†๋Š” class ์ƒ์ˆ˜์ด๋‹ค

    • class๊ฐ€ memory์— load ๋˜๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

      • class.์ƒ์ˆ˜ ์˜ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค

    • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์•ผํ•œ๋‹ค

Last updated