Java static & final ์ฝ๊ฒ ์ดํดํ๊ธฐ!
์ด๋ฒ ์์์ Java์์ย static๊ณผย finalย ํค์๋๊ฐ ๋ฌด์์ธ์ง, ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์ฝ๊ฒ ์ค๋ช
ํด ์ค๋๋ค.
static์ ํ๋ก๊ทธ๋จ ์คํ ์ ๊ฐ์ฅ ๋จผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ณ , final์ ๊ฐ์ ๋ฐ๊ฟ ์ ์๋ ์์๋ ์์์ ๋ง๋ ์ญํ ์ ํด์.
์๋ ๋ชฉ์ฐจ๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์ดํดํด๋ด์!
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
7.
8.
9.
1. static ํค์๋๋? [00:00:00]
โข
static์ '๊ณ ์ ๋'์ด๋ผ๋ ๋ป์ด์์.
โข
์๋ฐ ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋, ํด๋์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉ๋๋ฉด์ static ๋ฉค๋ฒ(๋ณ์, ๋ฉ์๋)๊ฐ ๊ฐ์ฅ ๋จผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๋๋ค.
โข
์ฆ, ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ ์ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ฏธ ์กด์ฌํ๋ ๋ฉค๋ฒ๋ค์ด์์.
๋น์ :
ํ๊ต์ ๋ค์ด๊ฐ๋ฉด ๊ต์ค์ด ๋ง๋ค์ด์ง๊ณ ํ์๋ค์ด ๋ค์ด๊ฐ์ฃ ? ๊ทธ๋ฐ๋ฐ static์ ํ์์ด ๋ค์ด์ค๊ธฐ ์ ์ ์ด๋ฏธ ๊ต์ค์ ๋ถ์ด์๋ ๊ฒ์ํ ๊ฐ์ ๊ฑฐ์์. ํ์(๊ฐ์ฒด)์ด ์์ด๋ ๊ฒ์ํ(static ๋ฉค๋ฒ)์ ํญ์ ์์ด์.
2. static ๋ณ์์ ๋ฉ์๋ ํน์ง [00:02:00]
โข
static ๋ณ์์ ๋ฉ์๋๋ ๊ฐ์ฒด ์์ฑ ์์ด ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅ!
โข
ํ๋ก๊ทธ๋จ์ด ๋๋ ๋๊น์ง ๋ฉ๋ชจ๋ฆฌ์ ๊ณ ์ ๋์ด ์์ด์.
โข
์ฌ๋ฌ ๊ฐ์ฒด๊ฐ ๊ฐ์ static ๋ณ์๋ฅผ ๊ณต์ ํด์.
โข
๋ฐ๋ฉด, ์ผ๋ฐ ๋ณ์(์ธ์คํด์ค ๋ณ์)๋ ๊ฐ์ฒด๋ง๋ค ๋ฐ๋ก ์์ฑ๋๊ณ ๊ฐ๋ ๊ฐ๊ฐ ๋ฌ๋ผ์.
3. static๊ณผ ์ธ์คํด์ค(๊ฐ์ฒด)์ ๋ฉ๋ชจ๋ฆฌ ์ฐจ์ด [00:03:00]
โข
์ธ์คํด์ค ๋ณ์/๋ฉ์๋:ย ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ณ , ๊ฐ์ฒด๊ฐ ์ฌ๋ผ์ง๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ ํด์ ๋จ.
โข
static ๋ณ์/๋ฉ์๋:ย ํ๋ก๊ทธ๋จ ์์ ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ณ , ํ๋ก๊ทธ๋จ ์ข
๋ฃ ์๊น์ง ์ ์ง๋จ.
โข
๊ทธ๋์ static ๋ฉค๋ฒ๋ ์ ์ญ ๋ณ์์ฒ๋ผ ์ด๋์๋ ์ ๊ทผ ๊ฐ๋ฅํด์.
4. static ๋ฉ์๋์์ ์ธ์คํด์ค ๋ณ์ ์ ๊ทผ ๋ถ๊ฐ ์ด์ [00:07:30]
โข
static ๋ฉ์๋๋ ๊ฐ์ฒด ์์ฑ ์ ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๋๋ฐ, ์ธ์คํด์ค ๋ณ์๋ ๊ฐ์ฒด๊ฐ ์์ฑ๋์ด์ผ ์๊ฒจ์.
โข
๊ทธ๋์ static ๋ฉ์๋ ์์์๋ ์์ง ๋ง๋ค์ด์ง์ง ์์ ์ธ์คํด์ค ๋ณ์๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ด์.
โข
๋ํ, static ๋ฉ์๋์์๋ย thisย ํค์๋๋ฅผ ์ฌ์ฉํ ์ ์๋๋ฐ,ย this๋ '์๊ธฐ ์์ ๊ฐ์ฒด'๋ฅผ ๊ฐ๋ฆฌํค๊ธฐ ๋๋ฌธ์ด์์.
5. ์ฝ๋ ์์ ๋ก ๋ณด๋ static ์ฌ์ฉ๋ฒ [00:09:00]
โข
static ๋ณ์ a, b์ static ๋ฉ์๋ sum()์ ์ ์ธํด๋ด
๋๋ค.
โข
sum()์ ๊ฐ์ฒด ์์ฑ ์์ด ๋ฐ๋ก ํธ์ถ ๊ฐ๋ฅํด์.
โข
์ธ์คํด์ค ๋ณ์๋ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ผ๋ง ์ฌ์ฉํ ์ ์์ด์.
โข
static ๋ฉ์๋ ๋ด์์ ์ธ์คํด์ค ๋ณ์์ ์ ๊ทผํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
6. static ๋ณ์ ๊ณต์ ์ ์ธ์คํด์ค ๋ณ์ ์ฐจ์ด [00:22:00]
โข
์๋ฅผ ๋ค์ด, static ๋ณ์ a์ 100์ ๋ฃ์ผ๋ฉด ๋ชจ๋ ๊ฐ์ฒด์์ a์ ๊ฐ์ 100์ผ๋ก ๊ณต์ ๋ผ์.
โข
๋ฐ๋ฉด, ์ธ์คํด์ค ๋ณ์ c๋ ๊ฐ์ฒด๋ง๋ค ๋ค๋ฅด๊ฒ ๊ฐ์ง ์ ์์ด์.
โข
์ฆ, static ๋ณ์๋ ํด๋์ค ๋น ํ๋๋ง ์กด์ฌํ๊ณ , ์ธ์คํด์ค ๋ณ์๋ ๊ฐ์ฒด๋ง๋ค ๋ฐ๋ก ์กด์ฌํฉ๋๋ค.
7. final ํค์๋๋? (์์, ์์, ์ค๋ฒ๋ผ์ด๋ฉ ์ ํ) [00:24:00]
โข
final ๋ณ์:ย ๊ฐ์ ํ ๋ฒ ์ ํ๋ฉด ๋ณ๊ฒฝ ๋ถ๊ฐ, ์ฆ ์์๋ก ์ฌ์ฉ.
โข
final ๋ฉ์๋:ย ๋ ์ด์ ์ค๋ฒ๋ผ์ด๋ฉ(์ฌ์ ์)ํ ์ ์๊ฒ ๋ง์.
โข
final ํด๋์ค:ย ์์ํ ์ ์๋ ํด๋์ค, ์ฆ ์ด ํด๋์ค๋ฅผ ๋ถ๋ชจ๋ก ํ๋ ์์ ํด๋์ค๋ฅผ ๋ง๋ค ์ ์์.
8. final ํด๋์ค, ๋ฉ์๋, ๋ณ์ ์ค์ต [00:26:00]
โข
final ํด๋์ค๋ฅผ ์ ์ธํ๊ณ ์์ ์๋ํ๋ฉด ์ปดํ์ผ ์๋ฌ ๋ฐ์!
โข
final ๋ฉ์๋๋ ์์ ํด๋์ค์์ ์ค๋ฒ๋ผ์ด๋ฉ ๋ถ๊ฐ!
โข
final ๋ณ์๋ ๋๋ฌธ์์ ์ค๋ค์ดํฌ ์ผ์ด์ค(์: MAX_VALUE)๋ก ํ๊ธฐํ๋ ๊ฒ์ด ๊ด๋ก์
๋๋ค.
9. ๋ง๋ฌด๋ฆฌ ์ ๋ฆฌ [00:32:00]
โข
static์ ํ๋ก๊ทธ๋จ ์์๊ณผ ํจ๊ป ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ณ , ๊ฐ์ฒด ์์ฑ ์์ด๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, ์ฌ๋ฌ ๊ฐ์ฒด๊ฐ ๊ฐ์ ๊ณต์ ํ๋ ๋ฉค๋ฒ๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉํฉ๋๋ค.
โข
final์ ๋ณ์๋ฅผ ์์๋ก ๋ง๋ค๊ฑฐ๋, ๋ฉ์๋์ ํด๋์ค์ ๋ณ๊ฒฝ(์ค๋ฒ๋ผ์ด๋ฉ, ์์)์ ๋ง์ ๋ ์ฌ์ฉํฉ๋๋ค.
โข
๋ ํค์๋๋ ์๋ฐ์์ ์ค์ํ ๊ฐ๋
์ผ๋ก, ์ ์ดํดํ๋ฉด ํจ์จ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํด์ง๋๋ค!
์์ฝ
static์ '๋จผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ์ ๋ชจ๋๊ฐ ๊ณต์ ํ๋ ๋ฉค๋ฒ', final์ '๋ณ๊ฒฝ ๋ถ๊ฐํ ์์๋ ์์/์ค๋ฒ๋ผ์ด๋ฉ ๊ธ์ง'๋ฅผ ์๋ฏธํด์.
static๊ณผ final์ ์ ์ ํ ํ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ์ฝ๋ ์์ ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
์์์์ ์์ธํ ์์ ์ ์ค๋ช
์ ๊ผญ ํ์ธํด๋ณด์ธ์!
๊ถ๊ธํ ์ ์์ผ๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์! ์ฆ๊ฑฐ์ด ์ฝ๋ฉ ๋์ธ์~ 