์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
- ์ฝ๋๋ธ๋ญ
- branch ์ญ์
- branch ํ์ธ
- ๋ธ๋์น ํ์ธ
- ![rejected]
- branch ์์ฑ
- ์ฝ๋๋ธ๋ก
- ๋งํฌ๋ค์ด
- ๋ธ๋์น ์ญ์
- ๋ธ๋์น ์์ฑ
- Git๋ช ๋ น์ด
- markdown
- Today
- Total
DevLog
TIL(20210717) - ํด๋์ค์ ์ค๋ธ์ ํธ์ ์ฐจ์ด์ , ํด๋์ค ์ ๋ฆฌ ๋ณธ๋ฌธ
TIL(20210717) - ํด๋์ค์ ์ค๋ธ์ ํธ์ ์ฐจ์ด์ , ํด๋์ค ์ ๋ฆฌ
Seungjae Lee 2021. 7. 17. 21:30๐ Daily
- JavaScript ํด๋์ค(class) ํ์ต
- ํด๋์ค(Class)์ ์ค๋ธ์ ํธ(Object)์ ์ฐจ์ด์ ํ์ต
๐ค Learned
ํด๋์ค(Class)๋?
์๋ก ๊ด๋ จ ์๋ ๋ฐ์ดํฐ(fields, method)๋ฅผ ํ ๊ณณ์ ๋ฌถ์ด ๋์ ์ปจํ ์ด๋๋ฅผ ๋งํ๋ค.
class Person{
// fields(์์ฑ)
name;
age;
// method(ํ๋)
speak();
}
์ ์ฝ๋๋ฅผ ๋ณด๋ฉด Person์ด๋ผ๋ ์ด๋ฆ์ ํด๋์ค(Class)๋
name๊ณผ age๋ผ๋ property๊ฐ ๋ค์ด์๊ณ
๋ง์ ํ๋ ๊ธฐ๋ฅ speack()๋ผ๋ ์ด๋ฆ์ function์ด ์์ต๋๋ค.
์ด๋ ๊ฒ ํด๋์ค(Class) ์์๋ name๊ณผ age ๊ฐ์ ์์ฑ, ์ฆ Fields๊ฐ ๋ค์ด์๊ณ
๊ทธ๋ฆฌ๊ณ ํ๋์ด๋ผ๊ณ ๋ณผ ์ ์๋ method๊ฐ ๋ค์ด์์ต๋๋ค.
๊ทธ๋์ ํด๋์ค(Class)๋ ์กฐ๊ธ ๋ ์ฐ๊ด์๋ ๋ฐ์ดํฐ๋ค์ ๋ฌถ์ด๋์,
Fields์ method๊ฐ ์ข
ํฉ์ ์ผ๋ก ๋ฌถ์ฌ์๋ ๊ฒ์ ๋งํฉ๋๋ค.
๊ฐํน ํด๋์ค(Class) ์์๋ method๋ ๋ค์ด์์ง ์๊ณ data๋ง, ์ฆ Fields๋ง ๋ค์ด์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
์ฃผ๋ก ์ด๋ฐ ๋ฐฉ๋ฒ์ ๋ง์ด ์ฐ๊ณ , ์ด๋ฅผ data Class ๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.
ํด๋์ค(Class) ์์์๋ ๋ด๋ถ์ ์ผ๋ก ๋ณด์ด๋ ๋ณ์์, ๋ฐ์์ ๋ณด์ผ ์ ์๋ ๋ณ์๋ค์ ๋๋ ์ ์๋๋ฐ
์ด๋ฐ ๊ฒ๋ค์ encapsulation(์บก์ํ)๋ผ๊ณ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํด๋์ค(Class)๋ฅผ ์ด์ฉํด์ ์์(Inheritance)๊ณผ, ๋คํ์ฑ(Polymorphism)์ด ์ผ์ด๋ ์ ์๋๋ฐ
์ด๋ฐ ๋ชจ๋ ๊ฒ๋ค์ด ๊ฐ๋ฅํ ๊ฒ์ด ๋ฐ๋ก ๊ฐ์ฒด์งํฅ ์ธ์ด์
๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ค์ ๋ก ์ด์๊ฐ๊ณ ์๋ ์ธ์์๋ ์๋ง์ ๋ฌผ์ฒด์ ์ฌ๋ฌผ์ด ์กด์ฌํ๋๋ฐ
์ด๋ ๊ฒ ํ๋ก๊ทธ๋๋ฐ์ ํ ๋๋ ์ฌ๋ฌผ๊ณผ ๋ฌผ์ฒด๋ค์ class๋ก, object๋ก ์ ์ํด์ ํ๋ก๊ทธ๋๋ฐํ๋ ๊ฒ์ด
์กฐ๊ธ ๋ ์์ฐ์ค๋ฝ๊ธฐ ๋๋ฌธ์, ๊ฐ๋ฐ์๋ค์ด ์กฐ๊ธ ๋ ํธํ๊ณ ์ ์ฐํ๊ฒ ํ๋ก๊ทธ๋๋ฐ์ ํ ์ ์์ต๋๋ค.
๊ฐ์ฒด ์งํฅ ์ธ์ด๋ก ํ๋ก๊ทธ๋๋ฐ์ ์ํ๋ ๊ฐ๋ฐ์๋?
ํ์ด์ผ ํ๋ ๋ฌธ์ ๋ ๊ตฌํํด์ผ ํ๋ ๋ฌธ์ ๋ฅผ ๊ฐ์ฒด๋ก ์ ์ ์ํด์ ๋ง๋ค ์ ์๋ ๊ฐ๋ฐ์๋ฅผ ๋งํฉ๋๋ค.
ํด๋์ค๋ ๋ถ์ด๋นต์ ๋ง๋ค ์ ์๋ ํ์ ๋งํฉ๋๋ค.
์ฒญ์ฌ์ง์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๊ณ template(ํ
ํ๋ฆฟ) ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฝ๋๋ค.
ํด๋์ค ์์ฒด์๋ data๊ฐ ๋ค์ด์์ง ์๊ณ template๋ง ์ ์ํด ๋์ต๋๋ค.
์ด ํด๋์ค์๋ ์ด๋ฐ data๋ง ๋ค์ด์ฌ ์ ์์ด ๋ผ๊ณ ์ ์๋ง ํด๋๊ณ ํ ๋ฒ๋ง ์ ์ธํฉ๋๋ค.
์ด ํด๋์ค๋ฅผ ์ด์ฉํด์ ์ค์ ๋ก data๋ฅผ ๋ฃ์ด์ ๋ง๋๋ ๊ฒ์ด Object์ ๋๋ค.
ํด๋์ค๋ฅผ ์ด์ฉํด์ ์๋ก์ด instance๋ฅผ ์์ฑํ๋ฉด Object๊ฐ ๋ฉ๋๋ค.
Object๋ ํด๋์ค๋ฅผ ์ด์ฉํด์ ๊ต์ฅํ ๋ง์ด ๋ง๋ค ์ ์๊ณ ํด๋์ค๋ ์ ์๋ง ํด๋์ ๊ฒ์ด๋ผ์
์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ์ง ์์ง๋ง ์ค์ ๋ก data๋ฅผ ๋ฃ์ผ๋ฉด Object๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋์ ๋ถ์ด๋นต์ด๋ผ๋ ํด๋์ค๋ฅผ ์ด์ฉํด์ ํฅ์ ๋ฃ์ผ๋ฉด ํฅ ๋ถ์ด๋นต์ด ๋๊ณ ,
์ํฌ๋ฆผ์ ๋ฃ์ผ๋ฉด ์ํฌ๋ฆผ ๋ถ์ด๋นต์ด ๋ฉ๋๋ค
์ด๋ ๊ฒ ๋ง๋ค์ด์ง ๋ถ์ด๋นต ์์ฒด๋ Object์ด๊ณ .
๋ถ์ด๋นต์ ๋ง๋ค๊ธฐ ์ํด ์ ์ํ ๋ถ์ด๋นต ํ์ Class์ ๋๋ค.
๐ Tomorrow
- ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ ๊ฐ์ ์๊ฐ
- ์ค๋ ๊ณํ ์ก์๋์ ๊ฒ ์ํ
'๐ค TIL(Today I Learned)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TIL(20210720) - ์ฌ๊ท(recursion) (0) | 2021.07.21 |
---|---|
TIL(20210718) - sort() ๋ฉ์๋ ์ฌ์ฉ๋ฒ (0) | 2021.07.18 |
TIL(20210716) - JSON & XML (0) | 2021.07.16 |
TIL(20210715) - HA1 ๋ (0) | 2021.07.15 |
TIL(20210708) - JSX๊ท์น (0) | 2021.07.08 |