Java ์์ ์ฝ๊ฒ ์ดํดํ๊ธฐ! โ ์์ ์์ฝ
์ด ์์์ Java ํ๋ก๊ทธ๋๋ฐ์์ ์ค์ํ ๊ฐ๋
์ธย ์์์ ์ฝ๊ณ ์ฌ๋ฏธ์๊ฒ ์ค๋ช
ํด ์ค๋๋ค. ์์์ด ๋ฌด์์ธ์ง, ์ ์ฌ์ฉํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ค์ ์ฝ๋ ์์ ๊น์ง ์ฐจ๊ทผ์ฐจ๊ทผ ์๋ ค์ค์ Java ์ด๋ณด์๋ ์ดํดํ๊ธฐ ์ข์์!
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
7.
8.
์์ ๊ฐ๋
๊ณผ ํ์์ฑ [00:00:01]
โข
์์์ด๋?๋ถ๋ชจ๋ก๋ถํฐ ์ฌ์ฐ์ ๋ฌผ๋ ค๋ฐ๋ ๊ฒ์ฒ๋ผ,ย Java์์๋ ๋ถ๋ชจ ํด๋์ค(์ค๊ณ๋)์ ๋ณ์์ ๋ฉ์๋๋ฅผ ์์ ํด๋์ค๊ฐ ๊ทธ๋๋ก ๋ฌผ๋ ค๋ฐ์ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ ๋งํด์.
โข
์ ํ์ํ ๊น์?์๋์ฐจ ์ค๊ณ๋๋ฅผ 3๋
๋์ ๋ง๋ค์๋๋ฐ, ๋น์ทํ ์๋์ฐจ๋ฅผ ๋ ๋ง๋ค ๋ 5๋
์ด๋ ๋ค์ ์ค๊ณํ ํ์ ์์์์? ๊ธฐ์กด ์ค๊ณ๋๋ฅผ ๊ฐ์ ธ์์ ํ์ํ ๋ถ๋ถ๋ง ์ถ๊ฐํ๊ฑฐ๋ ์์ ํ๋ฉด ์๊ฐ๊ณผ ๋
ธ๋ ฅ์ ์ ์ฝํ ์ ์์ฃ !
โข
์์์ ์ฅ์
1.
์ฝ๋ ์ค๋ณต ์ต์ํ
2.
ํด๋์ค ๊ฐ๊ฒฐํ
3.
์ ์ง๋ณด์ ์ฌ์
4.
์ํํธ์จ์ด ์์ฐ์ฑ ํฅ์
ํด๋์ค์ ์์ ๊ตฌํ ๋ฐฉ๋ฒ [00:04:00]
โข
๋ถ๋ชจ ํด๋์ค๋ย ์ํผ ํด๋์ค(super class), ์์ ํด๋์ค๋ **์๋ธ ํด๋์ค(sub class)**๋ผ๊ณ ๋ถ๋ฌ์.
โข
์์์ย extendsย ํค์๋๋ฅผ ์ฌ์ฉํด ๊ตฌํํด์.์)ย class ์์ํด๋์ค extends ๋ถ๋ชจํด๋์ค { ... }
โข
์ด๋ ๊ฒ ํ๋ฉด ๋ถ๋ชจ ํด๋์ค์ ๋ณ์์ ๋ฉ์๋๋ฅผ ์์ ํด๋์ค์์ ๋ฐ๋ก ์ ์ํ์ง ์์๋ ์ฌ์ฉํ ์ ์์ด์!
๋คํ์ฑ๊ณผ ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ [00:05:16]
โข
*๋คํ์ฑ(polymorphism)**์ ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ ํํ๋ก ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ๊ธฐ๋ฅ์ด์์.
โข
์ค๋ฒ๋ก๋ฉ: ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ๋งค๊ฐ๋ณ์ ๋ค๋ฅด๊ฒ ์ฌ๋ฌ ๊ฐ ๋ง๋๋ ๊ฒ (์:ย add(int a, int b),ย add(double a, double b))
โข
์ค๋ฒ๋ผ์ด๋ฉ: ๋ถ๋ชจ ํด๋์ค์ ์๋ ๋ฉ์๋๋ฅผ ์์ ํด๋์ค์์ ๋๊ฐ์ ์ด๋ฆ๊ณผ ๋งค๊ฐ๋ณ์๋ก ๋ค์ ์ ์ํ๋ ๊ฒ
โฆ
์์ ๊ฐ์ฒด๋ก ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ๋ถ๋ชจ ๋ฉ์๋๋ ๋ฌด์ํ๊ณ ์์ ๋ฉ์๋๊ฐ ์คํ๋ผ์!
โฆ
์กฐ๊ฑด: ๋ฉ์๋ ์ด๋ฆ, ๋งค๊ฐ๋ณ์ ํ์
๊ณผ ์์, ๋ฆฌํด ํ์
์ด ๋ถ๋ชจ์ ๊ฐ์์ผ ํจ
โข
์ค๋ฒ๋ผ์ด๋ฉ์ ๋คํ์ฑ์ ๊ตฌํํ๋ ์ค์ํ ๋ฐฉ๋ฒ์ด์์!
์ค์ต: ํผ์นด์ธ ํด๋์ค ๋ง๋ค๊ธฐ [00:10:08]
โข
ํผ์นด์ธย ํด๋์ค๋ฅผ ๋ง๋ค์ด ๋ณ์(์๋์ง, ํ์
)์ ์์ฑ์, ๋ฉ์๋๋ฅผ ์ ์ํด์.
โข
์์ฑ์๋ ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง ๋ ์คํ๋๋ ํน๋ณํ ๋ฉ์๋๋ก, ํด๋์ค ์ด๋ฆ๊ณผ ๊ฐ์์ผ ํด์.
โข
์ฌ๋ฌ ์ข
๋ฅ์ ์์ฑ์๋ฅผ ๋ง๋ค์ด์ ๋ค์ํ ์ด๊ธฐํ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค์.
์ง์ฐ์ ๋ผ์ด์ธ ํด๋์ค, ์์ ์ ์ฉํ๊ธฐ [00:23:05]
โข
์ง์ฐย ํด๋์ค์์ย ํผ์นด์ธย ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ฌ์ฉํด์.
โข
๋ผ์ด์ธย ํด๋์ค๋ฅผย ํผ์นด์ธย ํด๋์ค๋ก๋ถํฐ ์์๋ฐ์ ๋ง๋ญ๋๋ค.
โข
extendsย ํค์๋๋ก ์์์ ์ ์ธํ๋ฉด,ย ๋ผ์ด์ธ๋ย ํผ์นด์ธ์ ๋ณ์์ ๋ฉ์๋๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์์ด์!
โข
๋ผ์ด์ธ ํด๋์ค์ ๋ถ๋ชจ ํด๋์ค์ ์์ฑ์๋ฅผ ๋ณต์ฌํด์ ์์ ํด ์ฌ์ฉํด์.
์ํผ(super) ํค์๋์ ์์ฑ์ ํธ์ถ [00:27:39]
โข
superย ํค์๋๋ ์์ ํด๋์ค์์ ๋ถ๋ชจ ํด๋์ค์ ๋ณ์๋ ๋ฉ์๋๋ฅผ ์ง์ ํธ์ถํ ๋ ์ฌ์ฉํด์.
โข
ํนํ ์์ฑ์์์ย super()๋ฅผ ํธ์ถํ๋ฉด ๋ถ๋ชจ ํด๋์ค์ ์์ฑ์๋ฅผ ์คํํด์ ๋ถ๋ชจ ๋ณ์๋ค์ ์ด๊ธฐํํ ์ ์์ด์.
โข
์๋ฅผ ๋ค์ด,ย ๋ผ์ด์ธย ์์ฑ์์์ย super(์๋์ง, ํ์
)์ ํธ์ถํดย ํผ์นด์ธ์ ์์ฑ์๋ฅผ ์คํํ๋ ์์ด์์.
๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ ์ค์ต๊ณผ ์ด๋
ธํ
์ด์
[00:30:04]
โข
ํผ์นด์ธ์ ๊ณต๊ฒฉ ๋ฉ์๋(aAttack,ย bAttack)๋ฅผย ๋ผ์ด์ธ์์ ์ฌ์ ์ํด ๋ ๊ฐ๋ ฅํ ๊ณต๊ฒฉ์ผ๋ก ๋ฐ๊ฟ์.
โข
์ด๋ย @Override๋ผ๋ **์ด๋
ธํ
์ด์
(annotation)**์ ๋ถ์ฌ์ "์ด ๋ฉ์๋๋ ๋ถ๋ชจ ๋ฉ์๋๋ฅผ ์ฌ์ ์ํ ๊ฒ"์์ ๋ช
ํํ ํด์ค์.
โข
์ด๋
ธํ
์ด์
์ ์ฝ๋์ ํน๋ณํ ์๋ฏธ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ํ์๋ผ๊ณ ์๊ฐํ๋ฉด ์ฌ์์!
โข
์คํ ๊ฒฐ๊ณผ, ์์ ํด๋์ค์ ๋ฉ์๋๊ฐ ์ฐ์ ์คํ๋์ด ๊ณต๊ฒฉ๋ ฅ์ด ์
๊ทธ๋ ์ด๋๋ ๊ฑธ ํ์ธํ ์ ์์ด์.
์์์ ํ์ฅ๊ณผ ์ ์ง๋ณด์์ฑ ํฅ์ [00:36:48]
โข
์์์ ํตํด ๋ถ๋ชจ ํด๋์ค์ ๊ธฐ๋ฅ์ ๋ฌผ๋ ค๋ฐ๊ณ , ์์ ํด๋์ค์์ ํ์ํ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ์์ ํ ์ ์์ด์.
โข
์๋ฅผ ๋ค์ด,ย ๋ผ์ด์ธ์ ์๋ก์ด ๊ณต๊ฒฉ ์คํฌย cAttack์ ์ถ๊ฐํด ํ์ฅํ ์ ์์ฃ .
โข
์ด๋ ๊ฒ ํ๋ฉด ์ฝ๋ ์ค๋ณต์ ์ค์ด๊ณ , ์ ์ง๋ณด์๋ ์ฌ์์ ธ์ ๊ฐ๋ฐ ์์ฐ์ฑ์ด ์ฌ๋ผ๊ฐ์!
๋ง๋ฌด๋ฆฌ ์์ฝ
Java ์์์ ๋ถ๋ชจ ํด๋์ค์ ๋ณ์์ ๋ฉ์๋๋ฅผ ์์ ํด๋์ค๊ฐ ๋ฌผ๋ ค๋ฐ์ ์ฌ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ผ๋ก, ์ฝ๋ ์ค๋ณต์ ์ค์ด๊ณ ๊ฐ๋ฐ ํจ์จ์ ๋์ฌ์ค๋๋ค.ย extendsย ํค์๋๋ก ์์์ ์ ์ธํ๊ณ ,ย super๋ก ๋ถ๋ชจ ์์ฑ์๋ฅผ ํธ์ถํ๋ฉฐ, ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ์ผ๋ก ์์ ํด๋์ค์์ ๋ถ๋ชจ ๋ฉ์๋๋ฅผ ์ฌ์ ์ํ ์ ์์ด์. ์ด ๋ชจ๋ ๊ฐ๋
์ ํผ์นด์ธ์ ๋ผ์ด์ธ ์์ ๋ก ์ฝ๊ณ ์ฌ๋ฏธ์๊ฒ ๋ฐฐ์๋ณด์์ต๋๋ค. ์ด์ ์ฌ๋ฌ๋ถ๋ ์์์ ํ์ฉํด ๋ ๊น๋ํ๊ณ ํจ์จ์ ์ธ Java ์ฝ๋๋ฅผ ์์ฑํด ๋ณด์ธ์! 