public protected private


public -> ์–ด๋””์„œ๋‚˜ ํด๋ž˜์Šค ๋ฉค๋ฒ„๋‚˜ ํ•จ์ˆ˜์— ์ ‘๊ทผ๊ฐ€๋Šฅ

protected -> ์ƒ์†๋ฐ›์€ ์ž์‹๊ณผ ๋ณธ๋ž˜ ํด๋ž˜์Šค์—์„œ ํ•ด๋‹น ํด๋ž˜์Šค ๋ฉค๋ฒ„๋‚˜ ํ•จ์ˆ˜์— ์ ‘๊ทผ๊ฐ€๋Šฅ

private -> ๋ณธ๋ž˜ ํด๋ž˜์Šค ์ž์ฒด์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ


์•„ ํด๋ž˜์Šค์— ๋ฌด์Šจ ๋ฉค๋ฒ„๋ž‘ ํ•จ์ˆ˜์žˆ๋Š”์ง€ ๋ณด๋Š”๋ฐ ์™œ
๋‚ด์žฅ๊ธฐ๊ด€๊นŒ์ง€ ๋‹ค๋ณด์—ฌ => ์ด๋Ÿฐ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ (์ •๋ณด์€๋‹‰)


Actorํด๋ž˜์Šค๋ฉด getName()ย move(dirX, dirY), getPosition(), attack(targetActor) ๋งŒ ํ˜ธ์ถœํ•˜๊ณ  ์‹ถ์€๋ฐ

์™œ ๋‚ด์žฅ (x, y, actorId, hp, maxHp, currentActionPoint, maxAP, actorJobType) ๊นŒ์ง€ ๋‹ค๋ณด์—ฌ?


์ด๋Ÿฐ๊ฑธ ๋ง‰๊ณ  ์‹ถ์–ด์„œ ์“ด๋‹ค๊ณ  ๋ณด๋ฉด๋จ


๋ณด์•ˆ๊ฐœ๋…ํ•˜๊ณ ๋Š” ์ข€ ๋‹ค๋ฆ„


ํ˜‘์—…ํ•ด์„œ ๋‚จ์˜ ์ฝ”๋“œ ๋ณด๋Š”๋ฐ ๋‚ด์žฅ ๊นŒ์ง€ ๋‹ค ๋ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ด๋ผ ์–ผ๋งˆ๋‚˜ ํ”ผ๊ณคํ•˜๋ƒ

๋ถ€๋ชจ ํด๋ž˜์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ๋ณด๊ณ  ์•„ ์—ฌ๊ธฐ์„  getName, move๋งŒ ์“ฐ๋ฉด ๋˜๊ฒ ๋„ค ํ•˜๊ณ  ์“ฐ๋Š”๊ฒŒ ํŽธํ•˜์ง€ (API)์ฒ˜๋Ÿผ

๋‹ค๋ฅธ ๋™๋ฃŒ๋Š” ์ž๊ธฐ๊ฐ€ ์•ˆ์“ด getName, move๋งŒ ์“ฐ๊ณ , ๋งŒ์•ฝ ์•ˆ๋Œ์•„๊ฐ„๋‹ค?

๊ทธ๋Ÿผ ์›๋ณธ ํด๋ž˜์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค ๋งŒ๋“  ๋†ˆ์„ ๋น„๋‚œ ํ•˜๋ฉด ๋˜๋Š”๊ฑฐ์ž„

๊ทธ๋ ‡๊ฒŒ ๊ฐ์ž ์ž‘์—…๋ถ„์— ๋Œ€ํ•ด์„œ ๋ชฐ๋ผ๋„ ๋˜๋Š” ๋ถ€๋ถ„์€ ์ˆจ๊ฒจ์„œ ๊ฐœ๋ฐœ์ž์˜ ๋จธ๋ฆฌ๋ฅผ ๋ณต์žกํ•˜์ง€ ์•Š๊ฒŒ ๋งŒ๋“ค๊ณ 

๊ทธ๊ฑธ๋กœ ์ƒ์‚ฐ์„ฑ์„ ๋Š˜๋ฆฌ๋Š” ๊ฐœ๋…์ž„



ํ•™๊ต์—์„œ ํ”„๋กœ์ ํŠธ ์—†์ด ์ฑ…์œผ๋กœ๋งŒ ๊ณต๋ถ€ํ•˜๋ฉด ํ—ท๊ฐˆ๋ฆผ


๊ฒฐ๊ตญ์€ ๊ฐ์ฒด์ง€ํ–ฅ์€ ํด๋ž˜์Šค๋˜ ์ธ์Šคํ„ด์Šค๋˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋Œ€์ƒ์„ ๊ฐ์ฒดํ™” ํ•˜๋Š”๊ฑฐ๊ณ 


๊ฐ์ฒดํ™”๋ฅผ ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด "๋ฉ์–ด๋ฆฌ"๋กœ ๋งŒ๋“œ๋Š”๊ฑฐ์ž„


์€ํ–‰์›์ด๋ฉด ์€ํ–‰์›, ์€ํ–‰๊ณ ๊ฐ์ด๋ฉด ์€ํ–‰๊ณ ๊ฐ

์ž”๊ณ ๋ฉด ์ž”๊ณ , ์ž…๊ธˆ์ด๋ฉด ์ž…๊ธˆ, ์ถœ๊ธˆ์ด๋ฉด ์ถœ๊ธˆ


์ด๋Ÿฐ ํฐ๋‹จ์œ„๋กœ ๋กœ์ง์„ ์ดํ•ด๊ฐ€๋Šฅํ•˜๊ฒŒ ํŽธ์˜์„ฑ ํŒจ์น˜๋ฅผ ํ•˜๋Š”๊ฑฐ์ž„


c์–ธ์–ด ๋ฐฐ์šธ๋•Œ์ฒ˜๋Ÿผ (๋น„ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์ฒ˜๋Ÿผ)
์ž…๊ธˆ ํ•˜๋‚˜๋งˆ์ €๋„ ๋ฌด์Šจ ๋ฉ”๋ชจ๋ฆฌ ์ขŒํ‘œ์˜ ๋ช‡๋ฒˆ์งธ ๊ตฌ๊ฐ„์— ๊ฐ’์„ + 10ํ•œ๋‹ค ์ด๊ฑธ ๋‹ค ์ฝ์–ด๋ณด๊ณ  ์ดํ•ดํ•ด์•ผ๋˜๋ฉด

(๊ฒฐ๊ตญ์€ ์€ํ–‰์›์ด ์€ํ–‰ ๊ณ„์ขŒ์— ์ž…๊ธˆ 10์› ํ•œ๊ฑฐ)


์ƒ์‚ฐ์„ฑ์€ ์ˆ˜์งํ•˜๋ฝํ•œ๋‹ค๊ณ  ๋ณผ์ˆ˜์žˆ๋‹ค.


public protected private๋Š” ๊ทธ๋Ÿฐ ์ฐจ์›์ด๋ผ๊ณ  ๋ณด๋ฉด๋จ


public ์€ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋„ ์•Œ์•„์•ผ ํ•˜๊ณ  ๋‹ค๋ฅธํด๋ž˜์Šค์—์„œ ํ˜ธ์ถœํ•  ๋‚ด์šฉ์ด๊ณ 

protected๋Š” ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์žํ•˜ ํ™•์žฅํ•˜๊ฑฐ๋‚˜ ์ƒ์†๋ฐ›์•„์„œ ์“ธ๋•Œ ๋…ธ์ถœํ•ด์ค˜์•ผ ํ•  ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜์ž„

private๋Š” ์ด ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์จ์„œ ๋‚จ๋“ค์€ ๋ชฐ๋ผ๋„ ๋˜๋Š” ๋ฐ, ๊ธฐ๋Šฅ๊ตฌํ˜„์ƒ ์ž์ฃผ์“ด๋‹ค๊ฑฐ๋‚˜ ํ•ด์„œ ๋ฉ์–ด๋ฆฌ๋งŒ๋“ค๊ณ  ์‹ถ์„๋•Œ ์“ฐ๋Š”๊ฑฐ์ž„(ํ•จ์ˆ˜์˜๊ฒฝ์šฐ), ์•„๋‹ˆ๋ฉด ์—ฌ๊ธฐ์„œ๋งŒ ์จ์„œ ์€๋‹‰ํ•˜๊ณ  ์‹ถ๊ณ  ์ƒ์†์ด๋ž‘์€ ์ƒ๊ด€์—†๋Š” ๊ฒฝ์šฐ (๋ณ€์ˆ˜์˜ ๊ฒฝ์šฐ)



get/set property๋„ ๊ธฐ๊ณ„์ ์œผ๋กœ ์“ฐ์ง€๋ง๊ณ 

์ด๋ ‡๊ฒŒ ์ƒ๊ฐํ•ด๋ผ


ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ getํ•˜๊ฑฐ๋‚˜ set ํ•˜๊ธฐ๋งŒ ํ•ด๋„ ๋‹ค๋ฅธ ๋™์ž‘์ด ๋ฒŒ์–ด์ง€๊ฒŒ ํ• ๋งŒํผ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์„๊ฑฐ ๊ฐ™๋ƒ? ( getํ•ด์˜ฌ๋•Œ ๋กœ๊ทธ๋ฅผ ์ฐ๋Š”๋‹ค๋˜์ง€ ํ•˜๋Š”์‹์˜ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๋ฅผ ๋ฒŒ์–ด์ง€๊ฒŒ ํ•˜๊ณ  ์‹ถ๋ƒ?)ย 

๊ทธ๋Ÿผ ๊ทธ๋•Œ property๋ฅผ ์“ฐ๋ฉด ๋จ


property๋ฅผ ์•ˆ์“ฐ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋ƒ?


ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ accountRemain (์ž”๊ณ ) ๋ผ๊ณ  ์ณค์„๋•Œ

property๋ฅผ ์“ด๊ฒฝ์šฐ์ธ๋ฐ


์ž”๊ณ ๋ฅผ ์ฝ์–ด์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฒ„๊ทธ๊ฐ€ ์˜์‹ฌ๋˜์„œ ๋กœ๊ทธ๋ฅผ ์ฐ์–ด๋ณด๊ณ  ์‹ถ๋‹ค

๊ทธ๋Ÿผ accountRemain { set { reteurn value; } } ์ด๊ฑฐ๋ฅผ
accountRemain { set {ย  log(value); return value; }}ย 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ„๋‹จํ•จ


๋งŒ์•ฝ property๋ฅผ ์•ˆ์ผ๋‹ค?

ํ”„๋กœ์ ํŠธ์ƒ์—์„œ Ctrl + Shift + F ๊ฐ™์€๊ฑฐ ๋ˆŒ๋Ÿฌ์„œ ๋ชจ๋‘ ์ฐพ์•„ ๋ฐ”๊พธ๊ธฐ ํ•ด์•ผ๋จ

์‹ฌ์ง€์–ด ๊ฐ’ ์ฝ์–ด์˜ค๋Š” ๊ฒฝ์šฐ๋งŒ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•ด์„œ ํ•ด์•ผ๋จ ใ…‹ใ…‹

banker2.accountRemain += 2;

์ด๊ฑธ

log(banker2.accountRemain);

banker2.accountRemain += 2;


์ด๋ ‡๊ฒŒ 300๊ฐœ๋ฅผ ํ•ด์•ผ๋จ, ์—๋Ÿฌ๋‚˜๊ธฐ ๋”ฑ ์ข‹๊ณ 

์‹œ๊ฐ„์„ ์กด๋‚˜ ์žก์•„๋จน์ง€


๋ญ ๋‹ค๋ฅธ ์“ฐ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š” ์ง€๋„ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ, ๊ฒฐ๊ตญ์€ ์‚ฌ์ด๋“œ์ดํŽ™ํŠธ(๋ฆฌํ„ด๊ฐ’์œผ๋กœ ๊ฒฐ๊ณผ๊ฐ€ ์•ˆ๋‚˜์˜ค๊ณ  ๊ฐ’์ด ๋ฐ”๋€Œ๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋™์ž‘ํ•˜๋Š”๊ฑฐ) ๋‚ด๋Š” ์šฉ๋„์ž„

์ฝ”๋“œ์ƒ์˜ ํ•„์ˆ˜๋ผ๊ธฐ๋ณด๋‹จ, ์ƒ์‚ฐ์„ฑ์„ ์œ„ํ•œ ๊ฐœ๋ฐœ์ž์™€ ์–ธ์–ด๊ฐœ๋ฐœ์ž์˜ ๋ชธ๋’คํ‹€๊ธฐ ์Šคํ‚ฌ๊ฐ™์€๊ฑฐ๋ผ๊ณ  ๋ณด๋ฉด๋จ


์‚ฌ์ด๋“œ์ดํŽ™ํŠธ๊ฐ€ ๋งŽ์•„์ง€๋ฉด? ๋กœ์ง ์—๋Ÿฌ๋‚˜๊ธฐ ๋”ฑ ์ข‹์ง€, ํ•˜์ง€๋งŒ ๋‹น์žฅ ์ดํ‹€ ๊ฑธ๋ฆด๊ฑฐ 1๋ถ„์•ˆ์— ๋๋‚˜๋ฉด ์•ˆ์“ธ์‚ฌ๋žŒ ์žˆ๋ƒ?

๊ธฐ์ˆ ๋ถ€์ฑ„ ์Œ“์—ฌ๋„ ์“ฐ๋Š”๊ฑฐ์ง€.


์–ธ์–ด ์ฑ…์€ ์“ธ๋ฐ์—†์ด ์–ด๋ ค์šด ๋ถ€๋ถ„์ด ๋งŽ์Œ


๊ฐ์ฒด => ๋ฉ์–ด๋ฆฌ

์ •๋ณด์€๋‹‰ => ์€ํ–‰์—…๋ฌดํ•˜๋Š”๋ฐ ์€ํ–‰์› ๋‚ด์žฅ์— ๊ฐ„์•”์žˆ๋Š”์ง€๋Š” ๋ชฐ๋ผ๋„ ๋˜๋‹ˆ๊นŒ ์ˆจ๊ธฐ๊ธฐ


๊ฐ„๋‹จํ•œ๊ฑฐ์ž„


ใ……ใ„ฑ