์ค๋ ๊ณต๋ถํ ์๋ฐ์ ํด๋์ค๋ ์ฌ์ค ์๋ฐ์์ ๊ฐ์ฅ ์ค์ํ(?) ๋ถ๋ถ ์ค ํ๋๋ผ๊ณ ํด๋ ๊ณผ์ธ์ด ์๋ ๊ฒ์ด๋ค.
์ด ํด๋์ค๋ฅผ ์์ง ๋ชปํ๊ณ ๊ฐ์ฒด์ ๋ํ ๊ฐ๋ ์ ์ ์์ง ๋ชปํ๋ค๋ฉด, ์๋ฐ๋ก ๊ทธ ๋ฌด์๋ ํ๋ก๊ทธ๋๋ฐ ํ๊ธฐ์ ์ด๋ ค์์
๊ฐ์ง ๊ฒ์ด๋ค.(๋ฌผ๋ก ๊ฐ๋จํ๊ฒ๋ค ๋นผ๊ณ ..)
๊ทธ๋งํผ ์์ฒญ๋๊ฒ ์ค์ํ ๊ฐ๋ ์ด๋ฉด์ ๋์์ ์ด๋ ค์ด ๊ฐ๋ ์ด๊ธฐ๋ ํ๋ค.
ํด๋์ค๋ฅผ ์ค๋ช ํ๊ธฐ ์ ์, ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP : Object-Oriented Programming)์ด๋ผ๋ ๊ฒ์ ๋ํด
์๊ณ ๊ฐ ํ์๊ฐ ์๋ค.
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด๋, ๋ง ๊ทธ๋๋ก ๊ฐ์ฒด๋ฅผ ์งํฅํ๋ ํ๋ก๊ทธ๋๋ฐ์ด๋ค. ๊ฐ์ฒด๋ผ๋ ๊ฒ์ ์ค์ฌ์ผ๋ก
ํ๋ก๊ทธ๋จ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๊ณ ํ๋ก๊ทธ๋๋ฐ ํ๋ ๊ฒ์ด๋ค. ๋ฐ๋๋ก๋ C์ธ์ด ๊ฐ์ ์ ์ฐจ ์งํฅ ์ธ์ด๋ ์กด์ฌํ๋ค.
๊ทธ๋ผ ๊ฐ์ฒด๋ ๋ฌด์์ผ๊น?
์ด ์๋ฐ๋ฅผ ๋ง๋ ํ์ฌ์ธ ์ค๋ผํด์์๋ ๊ฐ์ฒด๋ฅผ ์ด๋ ๊ฒ ์ค๋ช ํ๋ค.
์ฐ๋ฆฌ๊ฐ ์ค์ ์ธ๊ณ์์ ์ฃผ๋ณ์ ๋๋ฌ๋ดค์ ๋, ๋ณผ ์ ์๋ ์ค์ ํ๋ ๊ฒ๋ค์ด๋ค.
์ฆ, ์์ ๊ฑฐ๋ ๊ฐ์ฒด๊ณ ์ฑ ๋ ๊ฐ์ฒด๊ณ ํํต๋ ๊ฐ์ฒด๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ฐ ๊ฐ์ฒด๋ฅผ ์งํฅํ๋ ํ๋ก๊ทธ๋๋ฐ์ ์ฌ์ฉํ๋ฉด ๋ฌด์์ด ์ข์์ง ์์๋ณด์.
1. ์บก์ํ : ๊ฐ์ฒด ๋ด๋ถ์ ๋ฉค๋ฒ(ํ๋, ๋ฉ์๋)๋ฑ์ ๊ฐ์ฒด ์ธ๋ถ์์ ๋ณผ์์๋๋ก ์บก์ํํ๋ค --> ๋ณด์์ฑ์ด ์ข๋ค
2. ์ถ์ํ : ๊ณตํต๊ดธ ๊ธฐ๋ฅ๊ณผ ์ ๋ณด๋ฅผ ์ถ์ถํด ๊ฐ์ฒดํํ๋ค
3. ์์ : ๋ฏธ๋ฆฌ ์ ์๋ ๋ถ๋ชจ ํด๋์ค์ ๋ชจ๋ ๋ฉค๋ฒ๋ฅผ ์์ ํด๋์ค๊ฐ ๋ฌผ๋ ค๋ฐ๋๋ค
4. ๋คํ์ฑ : ํ๋์ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ํธ์ถํ์ฌ ์ฌ์ฉํ๋ค
์ด๋ฌํ ๊ฒ๋ค์ด ๊ฐ์ฒด์ ํน์ฑ์ด๋ค.
์ฐ๋ฆฌ๋ ์๋ฐ์์ ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ์ง์ ์ ๊ทผํ์ฌ ์ฌ์ฉํ์ง ์๊ณ -->"๋ฉ์๋"๋ผ๋ ๊ฒ์ ํตํด ์ ๊ทผํ๋ค.
์, ๊ทธ๋ผ ์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก ํด๋์ค๋ ๋ฌด์์ธ๊ฐ?
ํด๋์ค๋,
๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ฒญ์ฌ์ง(blueprint)์ด๋ผ๊ณ ์ค๋ผํด์ ๋ช ์๋์ด์๋ค.
์ฆ, ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ค๊ณ๋ ๋๋ ํ ์ด๋ผ๊ณ ๋ณผ ์ ์๊ฒ ๋ค.
(์ฐธ๊ณ ๋ก ์ค๋ผํด์ ์๋ฐ์ ๋ํ ์ ์ ์ฌ์ดํธ๊ฐ ๋ณธ ๋ธ๋ก๊ทธ "๊ณต๋ถ" ์นดํ ๊ณ ๋ฆฌ ์์ ๋งํฌ๊ฐ ์๋ค)
๊ทธ๋ ๋ค๋ฉด ๊ทธ ํด๋์ค๋ผ๋ ๊ฒ์ ์ด๋ป๊ฒ ๋ง๋๋ ๊ฒ์ด๋?
--> <ํด๋์ค ์ ์ธ>
class ํด๋์ค๋ช
{
ํ๋(field)
๋ฉ์๋(method)
์์ฑ์(constructor)
}
ํด๋์ค์ ๋ฉค๋ฒ : ํ๋, ๋ฉ์๋
* ํด๋์ค๋ช
: ์ฒซ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ์์ฑํ๋ค
๊ทธ๋ฌ๋ฉด ๋ฐ๋ก ์์๋ฅผ ๋ณด์
์ฃผ์์ ์ ๋ฐ๋ก ๋ฉ์ธ ๋ฉ์๋๋ฅผ ์ ์ธํ๋ฉด ์๋๋ค๋ ๊ฒ์ด๋ค.
ํด๋์ค์ ์ด๋ฆ์ User(ํด๋์ค์ ์ฒซ๊ธ์๋ ๋๋ฌธ์๋ก ๋ณดํต ์ ์ํจ)๋ผ๊ณ ๋ง๋ค๊ณ ๊ทธ ์์ ํ๋๋ฅผ ์์ฑํ๋ค.
ํ๋๋ ์ฆ, ์ํ๋ค. ๊ทธ ํด๋์ค๊ฐ ๊ฐ์ง๋ ๊ธฐ๋ณธ์ ์ธ ์ํ๋ผ๊ณ ํ ์ ์๋ค.
์ด๋ ๊ฒ ํด๋์ค๋ฅผ ์ ์ ํ์ผ๋ฉด ์ฐ๋ฆฌ๋ ๋ง์น ์๋ฃํ ๊ฐ์ด ์ฌ์ฉํ ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค. ๋ฐ๋ก ์๋ฅผ ๋ณด์.
๋ฐ๋ก ๋ฉ์ธ ๋ฉ์๋๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์
User user1 = new User(); ์ด๋ผ๊ณ ์ ์ธ์ ํ๋ค.
๋ฐฐ์ด๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก new๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ heap ๋ฉ๋ชจ๋ฆฌ์ ์ฆ, ์ฃผ์๊ฐ์ user1์ด๋ผ๋ ๋ณ์์ ์ ์ฅํ๋ ๊ฒ์ด๋ค.
๋ณด๋ฉด ์ ์ ์๋ฏ์ด, int๋ String๊ฐ์ ์๋ฃํ์ด ๋ค์ด๊ฐ๋ ์๋ฆฌ์ ์ฐ๋ฆฌ๊ฐ ๋ฐฉ๊ธ ๋ง๋ ํด๋์ค User๊ฐ ๋ค์ด๊ฐ์๋ค.
๊ทธ๋ฌ๊ณ ๋์ ๊ทธ ํด๋์ค๋ฅผ ์ด์ฉํ์ฌ user1 ์ด๋ผ๋ ๋ณ์๋ฅผ ๋ง๋ค์๋ค. ๋ฐ๋ก ์ด๊ฒ์ด ๊ฐ์ฒดํ๋ค. ์ฐ๋ฆฌ๋ ๋ฐฉ๊ธ๊ณผ ๊ฐ์
๊ณผ์ ์ ํตํด์, User๋ผ๋ ์ฒญ์ฌ์ง(ํด๋์ค)๋ฅผ ์ด์ฉํด ๊ฐ์ฒด๋ฅผ ์ ์ธํ ๊ฒ์ด๋ค. ์ฆ, user1์ด ๊ฐ์ฒด๋ค.
์ด๋ก์จ ์ฐ๋ฆฌ๋ ์ถ์์ ์ด์๋ ํด๋์ค๋ฅผ ๊ฐ์ฒด๋ก์จ ๊ตฌ์ฒดํ ์ํค๋ ์์ ์ ํ๊ฒ์ด๋ค.
๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์ฒซ์ค๊ณผ ๋์งธ์ค์ ์ฐ๋ฆฌ๊ฐ ์๊น ๋ง๋ ํด๋์ค๊ฐ ์กด์ฌํ๋ ์์น๊ฐ ์์ ๋์ค๊ณ .User๋ผ๊ณ ํด๋์ค ๋ช ์ด ๋ช ์๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ ์ฃผ์๊ฐ์ด ๋์ค๋ ๊ฒ์ด๋ค.
์ฐ๋ฆฌ๊ฐ ์๊น User ํด๋์ค ์์ ๋ง๋ค์๋ String id = "kim" ๊ณผ String pw = "kim1234"๊ฐ ๋์ค๊ณ ์ถ์ผ๋ฉด
์ ๋ ฅ ๋ฉ์๋ ์์ user1.id ๊ทธ๋ฆฌ๊ณ user1.pw์ ๊ฐ์ด ํด๋์ค ํ๋์ ์์ฑํ ๋ณ์๋ฅผ ๊ฐ์ฒด ๋ค์ ์ ์ ์ฐ๊ณ ์ ๋ ฅํ๋ฉด ๋๋ค.
์ฆ, ๊ฐ์ฒด.ํด๋์ค์ ํ๋์ ์ ์ธํ ๋ณ์ ํํ๋ผ๊ณ ๋ณผ ์ ์๋ค.
์ค๋์ ํด๋์ค์ ๊ฐ์ฒด์ ๊ธฐ๋ณธ์ ๋ํด์ ์์๋ณด์๋ค.
๋ค์ ์์ํ ๋ด์ฉ์ด์ง๋ง ์ดํด๊ฐ ๋ ๋๊ฐ์ง ํด๋ณด๋ ๊ฒ์ด ์ค์ํ ๊ฒ ๊ฐ๋ค.
'์ธ์ด > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JAVA : ๋ฉ์๋(method) (0) | 2024.08.12 |
---|---|
JAVA : ์์ฑ์ (0) | 2024.08.12 |
JAVA : 2์ฐจ์ ๋ฐฐ์ด (0) | 2024.08.09 |
JAVA : ๋ฐฐ์ด(2) (0) | 2024.08.09 |
JAVA : ์ฌ๋ฌ๊ฐ์ง ์๋ฃํ์ ๋ฐฐ์ด (0) | 2024.08.09 |