์ ๊ธฐ๋ค์.
๊ทธ๋ฅ public ๋ get;set; ๋ถ์ด๋ ์ฐจ์ด์ ์ ์ ๋ง ์ดํด๋ฅผ ๋ชปํ๊ฒ ๊ฑฐ๋ ?
์ ํํ๊ฒ ์ค๋ช ํ ์ ์๋ ์ฌ๋ ์์๊น?
๋๋ค ์ธ๋ถ์์ ์ ๊ทผ๊ฐ๋ฅํ๊ณ ์์ ๊ฐ๋ฅํ๊ณ
๋ญ์ฐจ์ธ๊ฑฐ?
ํ๋กํผํฐ๋ set์ ๋บด๊ณ ๊ฒ๋ง์จ์ ์์ ๋ถ๊ฐ ํ๊ฒ ํ ์ ์๋ค๋๊ฑฐ? ๊ทธ๊ฑฐ๋์ ์ฐ๋๊ฑฐ?
๊ตณ์ด ๋ค๋ฅด๊ฒ ์ฐ๋ ์ด์ ๊ฐ ๋ญ์?
์๋ฆฌ์ผ๋ผ์ด์ฆ ํ ์ ์๊ณ ์๊ณ ์ ์ฐจ์ด์?
๊ทธ๊ฒ๋ ์๋๊ฑฐ ๊ฐ์๊ฒ ์ ์ด์ด์ผ๋ก ๋นผ๋ฉด ๊ทธ๋ฅ ๋ค ๋นผ์ง๋๋ฐ
์ธ์
/๋ก๋๋ฅผ ์ ์ด์ด ์ฐ๊ณ ์๊ฑฐ๋
๋ด๊ฐ ์ ํญ์ผ๋ก ์ฝ๋ฉ๋ฐฐ์์ ๊ทผ๋ณธ๋ ์๊ณ ๊ธฐ๋ณธ๋ ์์.
๋ญ ์ด๋ด๊ฑฐ ๋ฌผ์ด๋ด ์ด๋ฌ์ง ๋ง๊ณ
๊ฒ์ํด๋ด๋ ์ ์๋์ค๊ณ ์๋๊ฑด ๋๋ฌด ๋ฌ๊ตฌ๋ฆ๊ฐ์ ์๊ธฐ๋ค์ด๋ผ ์ ๋ชจ๋ฅด๊ฒ ๋๋ผ
์ ํํ ์ค๋ช ํ ์ ์๋ ์ฌ๋ ์์ ์ข๊ฒ ๋
์ ๋๋ ๋ณ๊ฐ๋ก ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ๋ณ์๋ฅผ public์ผ๋ก ์์ฑํ๋ ๊ฒ๊ณผ private์ผ๋ก ์ ์ธํ๊ณ getter setter๋ก ๊ฐ์ ๋ฃ๊ฑฐ๋ ์ฌ์ฉํ๋๋ฐ์๋ ์ด์ ๊ฐ ์๋๋ฐ, ๊ทผ๋ณธ์ ์ผ๋ก ์ธ๋ถ์์ ์ค์๋ก ๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฑธ ๋ง๊ธฐ ์ํจ์ - dc App
setter๋ฅผ ๋ฃ๋ ์๊ฐ ์ธ๋ถ์์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๊ฒ ๋๋๊ฑฐ ์๋?
Setter๋ฆ ํตํด์๋ง ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ์ค์๋ก ๋ณ๊ฒฝ๋์ง ์๋๋ค๋๊ฑฐ์ - dc App
class Item ------- public int statA ์ด๊ฑฐ๋ private int statA{get;set} ์ด๊ฑฐ๋ ์ธ๋ถ์์ item.statA = 100์ผ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅํ๊ฑฐ ์๋?
์๋จ. ์๋ฌ์. ์๋ฅผ ๋ค์ด ๊ฐ์ฒด์ ๋ํ ์๋ฆฌ์ผ๋ผ์ด์ฆ๊ฐ private ๊ฐ๊น์ง ํฌํจํ๋ค๋ฉด ๊ทธ๊ฑด ๊ทธ ์๋ฆฌ์ผ๋ผ์ด์ ๊ฐ ํด๋์ค์ getter methods ๋ฅผ ๊ธ์ด์ฃผ๋๊น ๊ฐ๋ฅํ๊ฑฐ์.
ํ๋กํผํฐ ์์ฒด๋ฅผ private์ผ๋ก ํด๋๊ณ ๋ญ..
์ private ์ ์ธํ๋ฉด ๊ทธ๋ ๊ฒ ๋์?
๊ทธ๋ผ public์ ๊ฒ์ ์ฐ๋ ์ด์ ๊ฐ ๋ญ์ผ๊น์?
๊ฒ์ ์์์ ์ฝ๋ ์งค์ ์์
๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ๋ด๊ธด ๋ณ์๋ฅผ ํจ๋ถ๋ฌ ์ฝ๊ณ ์ฐ๊ธฐ ์์ ํ ์์๊ฒ๋ ํ๊ฒ ํด์ฃผ๋๊ฒ. ์ฐธ์กฐ๊ฐget(์ค๋ฅธ์ชฝํญ)๊ณผ ๋์ ๊ฐset(์ผ์ชฝํญ)์ ๋ฐ๋ก ํ ์์๋ค๋๊ฒ
๋๋ ๋ ธ๊ทผ๋ณธ์ด๋ผ ๋์ถฉ์ด๋ ๊ฒ ์ ๋ฆฌํจ ์ง์ ์ฝ๋์งค๋๋ ์์์ฐ๊ณ api์์ ๋ง์ด ์ ํ๋๋ฐ ์ดํดํ๋๋ฐ ํฐ์ด๋ ค์์ ์๋๋ผ๊ณ
๊ฒ์ด๋ ์ ์ฐ๋ฉด ๋๋ฒ๊น ํ ๋ ํธํจ ์๋ฅผ ๋ค์ด์ ๋จ์ํ ๋ณ์๋ก ์ง์ ๊ฐ์ ์กฐ์ํ๋ค๋ฉด ์ค๋จ์ ๊ฑธ์ด์ผ ํ๊ณ ํจ์๋ฅผ ๋ง๋ค์ด๋จ์ผ๋ฉด ํจ์๋ง ์ค๋จ์ ๊ฑธ๋ฉด ๋๊ฒ ์ง
๋ฐ๋๋ ๊ฐ๋ง๋ค ์ค๋จ์ ์ ๊ฑธ์ด์ผํ๊ณ ํจ์๋ ํจ์๋ง ๊ฑธ๋ฉด๋๊ฒ ์ง ํจ์์์ ๊ฑธ๋ฆฌ๋ฉด ํธ์ถ ์คํ ๋ฐ๋ผ๊ฐ๋ฉด ๋๊ณ
์ฝ๋๊ฐ ์์จ์ ธ. class ๋ด๋ถ private ๊ฐ์ ๊ฐ์ฒด์์ ์ง์ ์ ๊ทผํ๋ฉด ์๋ฌ์. classs A ์์ private String name ์ด๋ฐ๊ฑฐ ์์ผ๋ฉด ์๋์ฝ๋๋ ๋ชจ๋ ์๋ฌ a.name = "์ธ๋ถ" a.name
์ ๋๊ธ๋ค์ด ๋ค ๋ง๋๋งํจ. ์บก์ํ๋ ์๋์ด๋ ๊ฐ์ ๋ณดํธ๊ฐ ๋ง๊ณ ๊ทธ ๋ณดํธ๋ผ๋๊ฒ ๊ฐ์ ๋ณ๊ฒฝ, ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ์ฉ, ์ ์ถ๋ ฅ ์ ์ /ํ์ฒ๋ฆฌ ๋ฑ๋ฑ ๊ฐ์.๊ฐ์ง๊ณ ํ ์ ์๋, ํด์ผํ๋ ๊ฑฐ์ ๋ชจ๋ ๋ด์ฉ์
๊ทธ๋ผ ํ๋กํผํฐ. ํด๋์ค์ ๋ฉค๋ฒ๋ณ์(aํด์ name๊ฐ์)๊ฐ ์ ์ฅ๋๋ ๊ณณ์ ํ๋๋ผ๊ณ ํ๊ณ . ํ๋์ ์ ์ธ๋ ๋ณ์์ ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒํฐ,์ธํฐ ๋ฌถ์์ ํ๋กํผํฐ๋ผ๊ณ ํจ. ๋น์ฐํ private ๋ณ์๋ฅผ ์ฝ๊ธฐ์ ์ฉ์ผ๋ก ๊ฒํฐ๋ง ๋ง๋ ๋ค๋ฉด ์ด๊ฒ๋ ํ๋กํผํฐ.
ํด๋์ค ๋ด๋ถ์์ public ์ ๋ณดํต ์์์ ์ฌ์ฉํจ. ์์๋ ์ด์ฐจํผ ๋ณ๊ฒฝ์ด ๋ธ๊ฐํ๋๊น. ๊ทธ๋ผ ์ ์ด ์ง๋ฌธ์ผ๋ก ๋์๊ฐ์ ์ ํด๋์ค ๊ฐ๋ค์ ๋ณดํธํ๋ํ๋ฉด... ์๊ทธ๋ฌ๋ฉด ๊ฒช์ง ์์์ผ ํ๋ ๊ณจ๋๋ฆฌ๋ ๋ฌธ์ ๋ฅผ ๋ฐ๋์ ๋ง๋จ. ๋์ ์ด์ฒ์ฌ๋ผ ์๊ทธ๋ด์ ์๊ฒ ์ง๋ง ์ข์ ์ฝ๋ ์ปจ๋ฒค์ ์ฒ๋ผ ์งํค๋ฉด ์๊ฒ๋ชจ๋ฅด๊ฒ ์ค์๊น์ง ๋ง์์ค
public int num/ public int Num { get; set; } ๋ ๋๊ฐ์ ๊ธฐ๋ฅ์ํจ ๊ทธ๋์ ํท๊ฐ๋ฆฌ๋๊ฑฐ ํ๋กํผํฐ๊ฐ๋ฅผ ์๋ฏธ์๊ฒ์ฐ์ด๋ ค๋ฉด(์ด๋ก ์ ์ธ๊ฑฐ๋บด๊ณ ) public int NUM{ get{return num;} set{if(value<=10) num 10; else num = value } } ๊ฐ์ ์์์ฐ๋ฉด num์ ๋ฌด์กฐ๊ฑด 10์ด์์ ๊ฐ์ด ๋ค์ด๊ฐ๋๊ฒ ๋ณด์ฅ๋
public int value { get; private set;} ๋ด๋ถ์์๋ง ์์ ๊ฐ๋ฅ
๊ทธ๊ฑฐ ์์ฒ๋ผ ์ธํฐ ์์์ ์ฝ๋ ์ง์ง ๋ง๋ผ๊ณ ํด๋ฆฐ์ฝ๋์ ๋์ด ์ฐจ๋ผ๋ฆฌ ๋ฉ์๋๋ก ๋นผ๋ผ๊ณ
์๋ํ์ง ์์ ๊ฐ์ ๋ณ๊ฒฝ์ ๋ง๊ธฐ์ํจ์