Search

Java ์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค & ์ฝ”๋”ฉ

Java ์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค & ์ฝ”๋”ฉ ์˜์ƒ ์š”์•ฝ

์ด ์˜์ƒ์€ Java์—์„œย ์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์–ด๋–ป๊ฒŒ ์„ ์–ธํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š”์ง€ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ๊ณ  ์‹ค์Šต ์˜ˆ์ œ๊นŒ์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ํด๋ž˜์Šค ์•ˆ์— ์„ ์–ธ๋œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ, ๋ณดํ†ต ์Šคํƒœํ‹ฑ(์ •์ )์œผ๋กœ ์กด์žฌํ•˜๋ฉฐ, ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ํ™œ์šฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

1.
์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค ๊ฐœ๋… ์†Œ๊ฐœ [00:00:02]
2.
์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค ์„ ์–ธ๊ณผ ํŠน์ง• [00:00:25]
3.
๊ตฌํ˜„ ํด๋ž˜์Šค์—์„œ ์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉํ•˜๊ธฐ [00:02:02]
4.
์‹ค์Šต: ์ดํด๋ฆฝ์Šค์—์„œ ์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค ์ฝ”๋”ฉ [00:02:36]
5.
์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ ํด๋ž˜์Šค ์ž‘์„ฑํ•˜๊ธฐ [00:06:14]
6.
๋ฉ”์ธ ๋ฉ”์†Œ๋“œ์—์„œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ํ˜ธ์ถœ [00:07:59]
7.
์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค ํ™œ์šฉ ๊ตฌ์กฐ ์ •๋ฆฌ [00:11:16]

์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค ๊ฐœ๋… ์†Œ๊ฐœ [00:00:02]

โ€ข
์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค๋ž€?
ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์„ ์–ธ๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งํ•ด์š”.
์˜ˆ๋ฅผ ๋“ค์–ด, ํด๋ž˜์Šค ์•ˆ์— ๋˜ ๋‹ค๋ฅธ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.
โ€ข
์ค‘์ฒฉ ํด๋ž˜์Šค์™€ ๋น„์Šทํ•˜์ง€๋งŒ,
์ค‘์ฒฉ ํด๋ž˜์Šค๋Š” ํด๋ž˜์Šค ์•ˆ์— ํด๋ž˜์Šค๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด๊ณ ,
์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ํด๋ž˜์Šค ์•ˆ์— ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ๋Š” ๊ฑฐ์˜ˆ์š”.

์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค ์„ ์–ธ๊ณผ ํŠน์ง• [00:00:25]

โ€ข
์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค๋Š”ย ์Šคํƒœํ‹ฑ ์ด๋„ˆ ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋งŒ ์กด์žฌํ•ด์š”.
์ฆ‰, ๋‚ด๋ถ€์— ์„ ์–ธ๋œ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ž๋™์œผ๋กœ static์ด ๋ถ™๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ผ์š”.
โ€ข
๊ทธ๋ž˜์„œ ๋ณ„๋„๋กœย staticย ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์ด์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.
โ€ข
์ ‘๊ทผํ•  ๋•Œ๋Š” ์™ธ๋ถ€ ํด๋ž˜์Šค ์ด๋ฆ„์„ ๋จผ์ € ์“ฐ๊ณ , ๊ทธ ๋‹ค์Œ์— ์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฆ„์„ ์จ์•ผ ํ•ด์š”.
์˜ˆ)ย OuterClass.InnerInterface

๊ตฌํ˜„ ํด๋ž˜์Šค์—์„œ ์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉํ•˜๊ธฐ [00:02:02]

โ€ข
์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด,
๊ตฌํ˜„ ํด๋ž˜์Šค์—์„œย OuterClass.InnerInterface๋ฅผ ๋ช…์‹œํ•ด์„œ ๊ตฌํ˜„ํ•ด์•ผ ํ•ด์š”.
โ€ข
์˜ˆ๋ฅผ ๋“ค์–ด,
class A { interface B { void method(); } } class C implements A.B { public void method() { // ๊ตฌํ˜„ ๋‚ด์šฉ } }
Java
๋ณต์‚ฌ
โ€ข
์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ ํด๋ž˜์Šคย C๊ฐ€ ์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šคย B๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์Šต: ์ดํด๋ฆฝ์Šค์—์„œ ์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค ์ฝ”๋”ฉ [00:02:36]

โ€ข
์‹ค์ œ๋กœ ์ดํด๋ฆฝ์Šค์—์„œ ํŒจํ‚ค์ง€์™€ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ ,
ํด๋ž˜์Šค ์•ˆ์— ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ณผ์ •์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
โ€ข
์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šคย J๋ฅผ ๋งŒ๋“ค๊ณ ,
์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šคย K๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์‹ค์Šต์„ ์ง„ํ–‰ํ•ด์š”.

์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ ํด๋ž˜์Šค ์ž‘์„ฑํ•˜๊ธฐ [00:06:14]

โ€ข
์ธํ„ฐํŽ˜์ด์Šคย Jย ์•ˆ์—๋Š” ์ถ”์ƒ ๋ฉ”์†Œ๋“œย A(),ย B()๊ฐ€ ์žˆ๊ณ ,
ํด๋ž˜์Šคย K์—์„œ ์ด ๋ฉ”์†Œ๋“œ๋“ค์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•ด์„œ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
๊ตฌํ˜„ ํด๋ž˜์Šค์—์„œ ๋ฉ”์†Œ๋“œ๋ฅผ ์™„์„ฑํ•˜๋Š” ๊ณผ์ •๊ณผ,
์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋Š” ๋ชจ์Šต๋„ ๋ณด์—ฌ์ค˜์š”.

๋ฉ”์ธ ๋ฉ”์†Œ๋“œ์—์„œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ํ˜ธ์ถœ [00:07:59]

โ€ข
Kย ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ ,
Jย ํƒ€์ž…์œผ๋กœ ์ฐธ์กฐํ•ด์„œ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
โ€ข
์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์™ธ๋ถ€ ํด๋ž˜์Šค์— ์ข…์†๋˜๊ธฐ ๋•Œ๋ฌธ์—,
OuterClass.InnerInterfaceย ํ˜•ํƒœ๋กœ ์ ‘๊ทผํ•˜๋Š” ์ ์„ ๋‹ค์‹œ ๊ฐ•์กฐํ•ด์š”.
โ€ข
์‹ค์ œ๋กœ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด,
๊ตฌํ˜„ํ•œย Kย ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค ํ™œ์šฉ ๊ตฌ์กฐ ์ •๋ฆฌ [00:11:16]

โ€ข
์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‹ค๋ฅธ ํด๋ž˜์Šค๊ฐ€ ๊ตฌํ˜„ํ•˜๊ณ ,
๊ทธ ๊ตฌํ˜„ ๊ฐ์ฒด๋ฅผ ์ธํ„ฐํŽ˜์ด์Šค ํƒ€์ž…์œผ๋กœ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ •๋ฆฌํ•ด์ค๋‹ˆ๋‹ค.
โ€ข
์ด๋Ÿฐ ๊ตฌ์กฐ๋Š” ๋ณต์žกํ•ด ๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ,
ํŠน์ • ์ƒํ™ฉ์—์„œ ์ฝ”๋“œ์˜ ์‘์ง‘๋„๋ฅผ ๋†’์ด๊ณ , ๊ด€๋ จ๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋งˆ๋ฌด๋ฆฌ ์š”์•ฝ

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