๐ก object๋ฅผ ๋์ถํ๋ ์์
- ๊ฐ object๊ฐ ๊ฐ์ง๊ณ ์์๋งํ '์์ฑ'์ด๋ '๋์'์ ์๊ฐํด ์ข
๋ฅ์ ๋ด์ฉ์ ์ ์
- ๊ฐ object๋ฅผ ๊ฐ์์ธ๊ณ์ ๋์ถ, ๋์์์ผ ๋ณด๊ธฐ
๐ก ์ฉ์ด ์ ๋ฆฌ
object: ํ์ค ์ธ๊ฒ์ ๋ชจ๋ ๊ฐ์ฒด
class: object๋ฅผ ๊ฐ์์ธ๊ณ ์ฉ์ผ๋ก ๊ตฌ์ฒดํ ํ ๊ฒ (๋ถ์ด๋นต ํ)
instance: ํด๋์ค๋ฅผ ํ์ฉํด ๋ฉ๋ชจ๋ฆฌ ์์ ๋ง๋ค์ด ๋ธ ๊ฒ (๋ถ์ด๋นต)
๐ก ๊ฒ์ ๋ง๋ค๊ธฐ
โ๏ธ main ๋ฉ์๋๋ฅผ ์์ฑ
์ด ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ธฐ ์ํด ํ์ํ ํด๋์ค๋ฅผ ์๊ฐํด๋ณด์.
- main ๋ฉ์๋๋ฅผ ๊ฐ์ง๋ 1๊ฐ์ "์ ํด๋์ค"
- ๋ฑ์ฅ ์ธ๋ฌผ ํด๋์ค
๊ตฌ์
1. ์ฉ์ฌ์ฌ, ๊ฐ์ ์ธ๊ณ์ ํ์ํ๋ผ
2. ๊ดด๋ฌผ ๋ฒ์ฏ์ด์ฌ, ๊ฐ์ ์ธ๊ณ์ ํ์ํ๋ผ
3. ์ฉ์ฌ์ฌ, ์ธ์๋ผ
4. ๊ดด๋ฌผ ๋ฒ์ฏ์ด์ฌ, ๋๋ง๊ฐ๋ผ
๐ก ์ฉ์ฌ ๊ตฌ์
public class Hero {
String name;
int hp;
void attack() {}
void run() {}
void sit(int sec) {}
void sleep() {}
}
๐พ ๊ดด๋ฌผ ๊ตฌ์
public class Kinoko {
int hp;
final int LEVEL = 10;
}
๐กํด๋์ค๋ช
๊ณผ ๋ฉค๋ฒ๋ณ์์ ๋ช
๋ช
๊ท์น
โ๏ธ ํด๋์ค๋ช
: ๋ช
์ฌ / ๋จ์ด์ ๋งจ ์ฒ์์ ๋๋ฌธ์ / ex) Hero, MonsterInfo
โ๏ธ ํ๋๋ช
: ๋ช
์ฌ / ์ต์ด ์ด์ธ์ ๋งจ ์ฒ์์ ๋๋ฌธ์ / ex) mLevel, mltemList
โ๏ธ ๋ฉ์๋๋ช
: ๋์ฌ / ์ต์ด ์ด์ธ์ ๋จ์ด์ ๋งจ ์ฒ์์ ๋๋ฌธ์ / ex) attack, findWeakPoint
๐ก ํด๋์ค ์ ์์ ๋ฐ๋ฅธ ํจ๊ณผ
- ์ ์ํ ํด๋์ค๋ก ์ธ์คํด์ค๋ฅผ ์์ฑ ํ ์ ์๋ค.
- ์ด ํด๋์ค๋ก ์์ฑํ ์ธ์คํด์ค๋ฅผ ๋ฃ์ ์ ์๋ ์๋ก์ด ๋ณ์์ ํ์
์ด ์ด์ฉ ๊ฐ๋ฅ ํด ์ง๋ค.
Hero ํด๋์ค๋ฅผ ์ ์ํ๋ฉด Hero ํ์
์ ๋ณ์๊ฐ ์ด์ฉ ๊ฐ๋ฅ.
Hero hero;
ํด๋์ค๋ฅผ ์ ์ํ๋ฉด Java์์ ์ด์ฉ๊ฐ๋ฅํ ํ์
์ ์ข
๋ฅ๊ฐ ์ ์ ๋์ด๋จ.
๐ก ์ธ์คํด์ค์ ํด๋์ค
- ์ธ์คํด์ค์ ํด๋์ค๋ ์์ ํ ๋ค๋ฅธ ๊ฒ. ํผ๋ํ์ง ๋ง์.
- ๊ฐ์ ์ธ๊ณ์์ ํ๋ํ๋ ๊ฒ์ ์ธ์คํด์ค (์ค๋ธ์ ํธ)
- ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ์ด ํด๋์ค
๐ก ํ๋์ ๋ฉ์๋
- ํด๋์ค์๋ ์์ฑ์ ํ๋๋ก, ๋์์ ๋ฉ์๋๋ก ์ ์ธํ๋ค.
- final์ด ๋ถ์ ํ๋๋ ์์ ํ๋๋ก์ ๊ฐ์ด ๋ถ๋ณ์ด๋ค.
- this๋ ์๊ธฐ ์์ ์ ์ธ์คํด์ค๋ฅผ ํ์ํ๋ ํค์๋.
๐ก ํด๋์ค ํ์
- ํด๋์ค๋ฅผ ์ ์ํ๋ฉด, ๊ทธ ํด๋์ค ํ์
์ ๋ณ์๋ฅผ ์ ์ธ ํ ์ ์๋ค.
- ์ด๋ค ํด๋์ค ํ์
๋ณ์๋ ๊ทธ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ด์ ์ ์๋ค.
๐ก ์ธ์คํด์คํ
- new ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ํด๋์ค๋ก๋ถํฐ ์ธ์คํด์ค๋ฅผ ์์ฑ (๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๋ ๊ฒ)
- ์ด๋ค ํด๋์ค ํ์
๋ณ์์ ์ธ์คํด์ค๊ฐ ๋ด๊ฒจ ์์ ๋ "๋ณ์๋ช
.ํ๋๋ช
" ์ด๋
"๋ณ์๋ช
.๋ฉ์๋๋ช
()"์ผ๋ก ๊ทธ ์ธ์คํด์ค์ ํ๋๋ ๋ฉ์๋๋ฅผ ์ด์ฉํ ์ ์๋ค.