์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- css
- ๋๊ฐ
- ์ค๋ธ์
- ํ์ด์ฌ
- Python
- JavaScript
- html
- Java
- ํ๋ก๊ทธ๋๋ฐ
- database
- ์ ๋ฆฌํธ๋ฆฌํธ
- ์ฝ๋ฉ
- ๋ฐฉํ๋ฒฝdmz
- ์ค๋ผํด
- ์ํ
- dmz๋คํธ์ํฌ
- ์๋ฐ
- ๊ฐ๋ฐ
- ๋ ์
- dmz๊ตฌ์ฑ
- ๋ฐฐ์์ ๋ฐฐ์
- dmz๋
- ์ฑ
- ๋คํธ์ํฌdmz
- ์นํผ๋ธ๋ฆฌ์ฑ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ์นดํ๋๊ฐ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ํ์ฒ์ ๋ฆฌํธ๋ฆฌํธ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- Today
- Total
JiYoung Dev ๐ฅ
[๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ] ์์, ์ถ์ํด๋์ค (2023.04.11) ๋ณธ๋ฌธ
[๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ] ์์, ์ถ์ํด๋์ค (2023.04.11)
Shinjio 2023. 4. 11. 17:57๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํน์ง
1. ์บก์ํ(Encapsulation) : ์ ๋ณด์๋
2. ์ถ์ํ(Abstract)
3. ์์(inheritance) โ โ โ โ โ โ
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ฅ์ ์ ๋๋ถ๋ถ์ ์์ ํน์ง์ผ๋ก๋ถํฐ ๋์จ๋ค.
5. ๋คํ์ฑ
์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ๋ฌธ์ .
๋ค์ ์ค ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํน์ง์ผ๋ก ์ณ์ง ์์ ๊ฒ์?
1. ์บก์ํ
2. ์ถ์ํ
3. ์ ๋ณด์๋
4. ์์
์ ๋ต 3๋ฒ → ์ ๋ณด์๋์ ์บก์ํ์ ํฌํจ
๐ ์์
์ฌ์ ์ ์ ์ : ๋ฌผ๋ ค๋ฐ๋ค, ์ด์ด๋ฐ๋ค, ๋ค๋ฅผ ์๋ค
๋ค๋ฅธ ํด๋์ค๊ฐ ๊ฐ์ง๊ณ ์๋ ํ๋, ๊ธฐ๋ฅ์ ๋ฌผ๋ ค๋ฐ๋๋ค๋ ๋ป
๋ถ๋ชจ ํด๋์ค(์ํผ ํด๋์ค)๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ธฐ๋ฅ์ ์์ ํด๋์ค(์๋ธ ํด๋์ค)๊ฐ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋๋ก
๊ธฐ์กด์ ํด๋์ค์ ๋ณ์(๋ฐ์ดํฐ)์ ๋ฉ์๋(๋ก์ง, ์ฝ๋)๋ฅผ ๋ฌผ๋ ค๋ฐ์ ์๋ก์ด ํด๋์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ
๊ทธ๋ฆผ์์ ํ์ดํ๋ ํ์ํ๋ ๋ฐฉํฅ์ ์๋ฏธํจ → ์์์์ ๋ถ๋ชจ๋ก ํ์ํด ๋๊ฐ๋ค.
์์ ํด๋์ค์์ ๋ฉ์๋๊ฐ ์๋์ง ํ์ธ. ์์ผ๋ฉด ๋ถ๋ชจํด๋์ค๋ก ์ด๋ํด์ ๋ฉ์๋๊ฐ ์๋์ง ํ์ธ
์ฝ๋๋ก ์์ ๊ฐ๋ ์ดํดํ๊ธฐ
์์ ์ฝ๋ ์์ฑ
public class ์์ํด๋์ค๋ช extends ๋ถ๋ชจํด๋์ค๋ช {
}
๐ ์์์ ํน์ง
1. ๋ค์ค ์์์ด ๋ถ๊ฐ๋ฅํ๋ค.
๋ฐ์ดํฐ๋ฅผ ํ์ํด ๋๊ฐ๋๋ฐ ์ปดํ์ผ ๋ฐฉํฅ์ ์์ด๋ฒ๋ฆด ์ ์์ผ๋ฏ๋ก
๊ทธ๋ฌ๋ 1.8๋ฒ์ ์ด์๋ถํฐ๋ ํน์ ํด๋์ค์์๋ ๋ค์ค์์์ด ๊ฐ๋ฅ → ์ธํฐํ์ด์ค๋ฅผ ๊ฒจ๋ฅํ ๊ฒ
์ฌ๋ฌ ํด๋์ค๋ก๋ถํฐ ์์๋ฐ์ ์ ์๋ค.
2. ์์์ ํ์์ ์ ํ์ ๋์ง ์๋๋ค.
์์์ ํ๋ ํ์์๋ ์ ํ์ด ์์
3. ๋ชจ๋ ํด๋์ค๋ java.lang.Object๋ฅผ ์์ ๋ฐ๋๋ค.
equals, toString ๋ฑ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์
4. ์ค๋ฒ๋ผ์ด๋ฉ
์ค๋ฒ๋ก๋ฉ๊ณผ ํท๊ฐ๋ฆฌ์ง ๋ง๊ฒ! (์ค๋ฒ๋ก๋ฉ : ๊ฐ์ ํด๋์ค ๋ด ์ค๋ณต์ ์)
์ค๋ฒ๋ผ์ด๋ฉ : ์ฌ์ ์ / ์์ ๊ด๊ณ์์ ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ {body}์์ ๋ด์ฉ์ด ๋ค๋ฅด๋ค. ์ฆ, ์คํ๋๋ ๊ธฐ๋ฅ์ด ๋ค๋ฅด๋ค. (๋งค๊ฐ๋ณ์๋ ๋ฐ๋์ง ์์!) ๊ตฌํ๋๋ ๊ธฐ๋ฅ์ด ๋ฌ๋ผ์ง
๋ง์ฐ์ค ์ฐํด๋ฆญ -----> source ----> Override/Implement Methods... ํด๋ฆญ
์ค๋ฒ๋ผ์ด๋ฉํ๊ธฐ ์ํ๋ ๋ฉ์๋ ์ ํ ํ OK
{} ๋ด๋ถ๋ง ์์ฑ!
โ ์์์ ์ฅ์
1. ๊ธฐ์กด ํด๋์ค์ ๋ณ์์ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ ์ ์์
2. ๋จผ์ ์์ฑ๋ ๊ฒ์ฆ๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฌ์ฉ
3. ํด๋์ค ๊ฐ ๊ณ์ธต์ ๋ถ๋ฅ ๋ฐ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํจ
โ ๊ฐ์ฒดํ ๋ฐ์ดํฐ์ ํ๋ณํ
๊ธฐ๋ณธ ๋ฐ์ดํฐ์ ํ๋ณํ
๋ช ์์ ํ๋ณํ๊ณผ ๋ฌต์์ ํ๋ณํ์ผ๋ก ๋๋จ. ๋ช ์์ ํ๋ณํ์ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ํฐ ๋ฐ์ดํฐ์์ ์์ ๋ฐ์ดํฐ๋ก ๋ณํํ๋ ๊ฒ์ ๋งํ์ฌ, ๋ฌต์์ ํ๋ณํ์ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ์์ ๋ฐ์ดํฐ์์ ํฐ ๋ฐ์ดํฐ๋ก ๋ณํํ๋ ๊ฒ์ ์๋ฏธํจ.
๊ฐ์ฒด์ ํ์ ์ ๋ํด์๋ ํ๋ณํ์ด ๊ฐ๋ฅํจ.
๊ฐ์ฒด ํ์ ์ ํ๋ณํ๋ ์ ์บ์คํ ๊ณผ ๋ค์ด์บ์คํ ์ผ๋ก ๋๋จ. ๊ฐ์ฒด ํ์ ์ ํ๋ณํ์ด ์ด๋ฃจ์ด์ง๊ธฐ ์ํด์๋ ๋ ๊ฐ์ฒด๊ฐ ์์ ๊ด๊ณ์ฌ์ผ ํจ. ์ ์บ์คํ ํ๋ณํ์ ์์ ํด๋์ค๊ฐ ๋ถ๋ชจ ํด๋์ค ํ์ ์ผ๋ก ํํ๊ฐ ๋ณํํ๋ ๊ฒ์ผ๋ก ๋ฌต์์ ํ๋ณํ๊ณผ ์ ์ฌํจ. ๋ฐ๋ฉด, ๋ค์ด์บ์คํ ์ ๋ถ๋ชจ ํด๋์ค๊ฐ ์์ ํด๋์ค๋ก ํ๋ณํ ๋๋ ๊ฒ์ธ๋ฐ ์ผ๋ฐ์ ์ผ๋ก๋ ๋ถ๊ฐ๋ฅํจ(๋ช ์์ ํ๋ณํ). ๋ถ๋ชจ ํด๋์ค๋ ์๋ ์์ ํด๋์ค์๋ ์ฆ, ์ ์บ์คํ ๋ ๊ฐ์ฒด๊ฐ ์๋์ ํ์ ์ผ๋ก ๋์๊ฐ๋ ๊ฒ๋ง ๊ฐ๋ฅ
๋ค์ด์บ์คํ ์ ์ค๋ฅ ๋ฐ์
๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ ์ฉ์ด ์ ๋ฆฌ
1. ํด๋์ค
2. Object
3. ํ๋/๋ฉ์๋
4. ์์ : ์ค๋ฒ๋ผ์ด๋ฉ
์์ ๊ด๊ณ์์ ๋ฉ์๋๋ฅผ ์ฌ์ ์
{body}๋ฅผ ๋ค๋ฅด๊ฒ ๊ตฌํํ๋ค
5. ๋ค์ด์บ์คํ (๋ช ์์ ํ๋ณํ)
์ ์บ์คํ ๋์ด ์๋ ๊ฐ์ฒด๋ง ๋ค์ด์บ์คํ ์ด ๊ฐ๋ฅํ๋ค
์๋ ์๋ฃํ์ผ๋ก ๋๋๋ฆฐ๋ค
6. ์ ์บ์คํ (์๋ ํ๋ณํ)
์์ํด๋์ค๋ฅผ ๋ถ๋ชจํด๋์ค์ ์๋ฃํ์ผ๋ก ๋ณํ
๐ ์ถ์ํด๋์ค
โ ์ถ์ํ
๊ฐ์ฒด ๊ฐ์ ๊ณตํต์ ์ ์ฐพ์๋ด์ ๊ณตํต์ ์กฐ์์ ๋ง๋๋ ์์
์์ ๊ณ์ธต๋๋ฅผ ๋ฐ๋ผ ์ฌ๋ผ๊ฐ์๋ก ํด๋์ค์ ์ถ์ํ๋ ๋์ฑ ์ฌํ๋๋ค.
โ ๊ตฌ์ฒดํ
์์์ ํตํด ํด๋์ค๋ฅผ ๊ตฌํ, ํ์ฅํ๋ ์์
โ ์ถ์๋ฉ์๋(Abstact Method)
์ ์ธ๋์ด ์์ผ๋ ๋ฉ์๋์ ๋ํ ๋ก์ง์ด ๊ตฌํ๋์ง ์์ ๋ฉ์๋
์ถ์ ๋ฉ์๋๋ ์๋ธ ํด๋์ค(์์ ํด๋์ค)์์ ์ค๋ฒ๋ผ์ด๋ฉํ์ฌ ๊ตฌํ
์ถ์ ๋ฉ์๋๊ฐ ์ ์๋์ด ์๋ค๋ฉด ํด๋์ค ๋ํ ์ถ์ ํด๋์ค๋ก ๋ฐ๊ฟ์ค์ผ ํจ
โ ์ถ์ ํด๋์ค(Abstract Class)
์ฌ๋ฌ ํด๋์ค๋ค ๊ฐ์ ๊ณตํต๋๋ ํ๋๋ ๋ฉ์๋๋ฅผ ์ถ์ถํด ๋ง๋ค์ด์ง๋ ํด๋์ค
์ถ์ ํด๋์ค๋ ๊ฐ์ฒด ์์ฑ์ด ๋ถ๊ฐ๋ฅํจ
์ถ์ ๋ฉ์๋๊ฐ ํ๋๋ ์์ด๋ ํด๋์ค ์์ Abstract๋ง ์ ์ธํ์ฌ ์ถ์ ํด๋์ค๋ก ๋ง๋ค ์ ์๋ค
โ ์ถ์ ํด๋์ค์ ํ์์ฑ
์ถ์ํ๋ฅผ ํตํด ๊ธฐ๋ฅ์ ์ค๊ณํ๊ณ ์์ ํด๋์ค๊ฐ ์์๋ฐ์์ผ๋ก์จ ๊ผญ ํ์ํ ๊ธฐ๋ฅ๋ค์ ๊ฐ๋ฐ์๊ฐ ์์ด๋ฒ๋ฆฌ์ง ์๋๋ก ๊ฐ์ ํ์์ผ์ค