๊ตญ๋น JAVA 13์ผ์ฐจ ์์ !!
์ค๋์ ์ ๊ทผ์ ํ์์ ์๋(Getter, Setter)์ ๋ํด์ ๋ฐฐ์ ๋ค!
๊ทธ๋ผ 13์ผ์ฐจ ์์ ์์~~!๐
1.์ ๊ทผ์ ํ์
- ์ ๊ทผ ์ ํ์๋ ํด๋์ค์ ๋ฉค๋ฒ๋ณ์, ๋ฉ์๋, ์์ฑ์์ ์ ๊ทผ์ ์ ์ดํ ์ ์๋ ์ ํ์.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํด๋์ค๋ฅผ ์ค๊ณ ํ ๋ ์ธ๋ถ ํด๋์ค์์ ์ ๊ทผํ ์ ์๋ ๋ฉค๋ฒ์ ์ ๊ทผํ ์ ์๋ ๋ฉค๋ฒ๋ก ๊ตฌ๋ถํด์ ๋ณ์, ์์ฑ์, ๋ฉ์๋ ์ค๊ณํ๋ ๊ฒ์ด ๋ฐ๋์งํจ.
- ์ธ๋ถ์์ ๊ฐ์ฒด ์์ฑ ๋ง๊ธฐ ์ํด ์์ฑ์๋ฅผ ํธ์ถํ์ง ๋ชปํ๊ฒ ํ๊ฑฐ๋ ๊ฐ์ฒด ํน์ ๋ฐ์ดํฐ ๋ณดํธํ๊ธฐ ์ํด ํด๋น ๋ฉค๋ฒ๋ณ์์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ๋ง๋๊ฒ์ด ์ ๊ทผ ์ ํ์์ ์ญํ .
- ํด๋์ค์๋ ์ ๊ทผ์ ํ์๋ฅผ public๊ณผ default๋ง ๋ถ์ผ ์ ์์.
โถ public : ๊ฐ์ ํด๋์ค, ํจํค์ง, ๋ค๋ฅธํจํค์ง๋ฅผ ๋ง๋ก ํ๊ณ ์ ๊ทผ ๊ฐ๋ฅ
โถ protected : ๊ฐ์ ํด๋์ค, ํจํค์ง๋ ์ ๊ทผ ๊ฐ๋ฅํ์ง๋ง ๋ค๋ฅธ ํจํค์ง์ ์ํด์๋ ํด๋์ค ์์๊ด๊ณ ์์ผ๋ฉด ์ ๊ทผ๋ถ๊ฐ
โถ default(์ ๊ทผ ์ ํ์๋ฅผ ๋ถ์ด์ง ์๋ ํํ) : ๊ฐ์ ํด๋์ค, ํจํค์ง๋ง ์ ๊ทผ ๊ฐ๋ฅ. ๋ค๋ฅธ ํจํค์ง ์ ๊ทผ ๋ถ๊ฐ๋ฅ.
โถprivate : ๊ฐ์ ํด๋์ค ๋ด๋ถ ์๋๋ฉด ์ ๊ทผ ๋ถ๊ฐ๋ฅ.
1-1) ์ ๊ทผ์ ํ์ ์์
Aํด๋์ค๋ Public, Bํด๋์ค๋ private(์์ฑ์ํด๋ ๋จ.)
Aํด๋์ค์ Bํด๋์ค๋ฅผ Cํด๋์ค๋ก ๊ฐ์ ธ์ ์์ฑํ๋ฉด Aํด๋์ค๋ ์ ๊ทผ์ ํ์ public์ด๋ฏ๋ก ์ฌ์ฉ๊ฐ๋ฅ
๊ทธ๋ฌ๋ Bํด๋์ค๋ ์ ๊ทผ์ ํ์๊ฐ default์ด๋ฏ๋ก ๋ค๋ฅธ ํจํค์ง์ ๋ค๋ฅธ ํด๋์ค์์ ์ฌ์ฉ๋ถ๊ฐ.
1-2) ์ ๊ทผ์ ํ์ 2๋ฒ์งธ ์์
Aํด๋์ค์๋ ์ ๊ทผ์ฐ์ฐ์๊ฐ public์ธ intํ A / default์ธ booleanํ A / private์ธ Stringํ A 3๊ฐ์ ์์ฑ์ ์กด์ฌ
Aํด๋์ค๋ด ์์ฑ์๋ค์ Bํด๋์ค์ Cํด๋์ค์ ์ ๋ชฉ์ํค๋ฉด
โ Bํด๋์ค - ์ ๊ทผ์ฐ์ฐ์๊ฐ public ๊ณผ default A๋ B๊ฐ A์ ๊ฐ์ ํจํค์ง์ด๋ฏ๋ก ์ฌ์ฉ๊ฐ๋ฅ
- private A๋ ์ค์ง ๊ฐ์ ํด๋์ค๋ด์์๋ง ์ฌ์ฉ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ Bํด๋์ค์์ ์ฌ์ฉ๋ถ๊ฐ
โ Cํด๋์ค - ์ ๊ทผ์ฐ์ฐ์๊ฐ public์ธ A๋ ์ด๋๋ ์ง ์ฌ์ฉ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ Cํด๋์ค์ ์ ๊ทผ๊ฐ๋ฅ
- ์ ๊ทผ์ฐ์ฐ์ default ์ private๋ ๋ค๋ฅธ ํจํค์ง์์ ์ฌ์ฉ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ Cํด๋์ค ์ ๊ทผ๋ถ๊ฐ
1-3) ์ ๊ทผ์ฐ์ฐ์ 3๋ฒ์งธ ์์
์์ ์์ ๋ A์ ์ ์ธํ ๋ฉค๋ฒ๋ณ์์ ๋ฉ์๋๋ฅผ B์ Cํด๋์ค์์ ์ฌ์ฉํ ์ ์๋์ง ๋ณด๋ ์์ ์ด๋ค.
A์์ ์ ์ธํ ๋ฉค๋ฒ๋ณ์ : public var1, default var2, private var3
A์์ ์ ์ธํ ๋ฉ์๋ : public method01, default method02, private method03
Bํด๋์ค : A์ ๊ฐ์ ํจํค์ง ๋ด์ ์์ผ๋ฏ๋ก ๋ฉค๋ฒ๋ณ์ var1, var2 ๊ทธ๋ฆฌ๊ณ ๋ฉ์๋ method01, method02์ฌ์ฉ๊ฐ๋ฅ
var3์ method03์ ์ ๊ทผ์ฐ์ฐ์๋ ์์ ์ ํด๋์ค ๋ด์์๋ฉด ์ฌ์ฉ๊ฐ๋ฅํ private์ด๊ธฐ์ ์ฌ์ฉ๋ถ๊ฐ
Cํด๋์ค : A์Bํด๋์ค์ ๋ค๋ฅธ ํจํค์ง๋ด์ ์์ผ๋ฏ๋ก ์ ๊ทผ์ฐ์ฐ์๊ฐ public์ธ var1๊ณผ method03๋ง ์ ๊ทผ๊ฐ๋ฅ
var2, method02๋ ์ ์ธ๋ ํจํค์ง๋ด์์๋ง ์ฌ์ฉ๊ฐ๋ฅํ๊ณ , var3์ method03์ ์ ์ธ๋ ํด๋์ค ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋ฏ๋ก Cํด๋์ค์์ ์ฌ์ฉ๋ถ๊ฐ.
1-4) ์ ๊ทผ์ฐ์ฐ์ 4๋ฒ์จฐ ์์
์์ ์์ ๋ ์ ๊ทผ์ฐ์ฐ์ protected๋ฅผ ์ฌ์ฉํ๋ ์์ ์ด๋ค.
Protected๋ ๊ฐ์ ํจํค์ง๋ด ์ฌ์ฉํ ์ ์๋ค.(์ ๊ทผ์ฐ์ฐ์ default์ ๋์ผํจ)
๋จ, ํจํค์ง๊ฐ ๋ฌ๋ผ๋ protected๋ super()๋ฅผ ์ด์ฉํด ๋ค๋ฅธ ํจํค์ง์ ํด๋์ค ์ฐธ์กฐํ ์ ์์.
A์๋ ์ ๊ทผ์ฐ์ฐ์ protected๋ก ์ ์ธํ ๋ฉค๋ฒ๋ณ์ a, ์์ฑ์, ๋ฉ์๋์์.
Bํด๋์ค : protected๋ ํจํค์ง๋ด ๋ชจ๋ ํด๋์ค ์ ๊ทผ ๊ฐ๋ฅํ๋ฏ๋ก ๋ฉค๋ฒ๋ณ์, ์์ฑ์, ๋ฉ์๋ ๋ชจ๋ ์ฌ์ฉ๊ฐ๋ฅ.
Cํด๋์ค : protected๋ super() ์ฌ์ฉํด์ ๋ค๋ฅธ ํจํค์ง ์ฐธ์กฐํ ์ ์์ผ๋ฏ๋ก ๋ฉค๋ฒ๋ณ์, ์์ฑ์,๋ฉ์๋ ๋ชจ๋ ์ฌ์ฉ๊ฐ๋ฅ!
2. ์๋(Encapsulation) - ์บก์ํ
- ์๋์ ์ฌ์ฉ์์๊ฒ ์์ธํ ๋ด๋ถ๊ตฌํ ์จ๊ธฐ๊ณ ํ์ํ ๋ถ๋ถ๋ง ๋ณด์ด๊ฒ ํจ.
- ์๋์ ์ฌ์ฉํ๊ธฐ ์ํด์ ํด๋์ค ๋ฉค๋ฒ๋ณ์ ์ ๊ทผ์ ํ์ private๋ก ์ค์ .
- ์๋๋ ๋ฉค๋ฒ๋ณ์์ ์ ๊ทผํ๊ธฐ ์ํด ๊ณต๊ฐ๋(public) ๋ฉ์๋ ํตํด ์ ๊ทผํ ์ ์๋๋ฐ, ๋ณ์์ ๊ฐ ๋ณ๊ฒฝ์ํค๋๋ฐ ์ฌ์ฉ๋๋ ๋ฉ์๋๋ setter๋ฉ์๋๋ผ ๋ถ๋ฅด๊ณ , ๋ณ์์ ๊ฐ ์ป์ด์ค๋๋ฐ ์ฌ์ฉํ๋ ๋ฉ์๋ getter๋ฉ์๋๋ผ๊ณ ๋ถ๋ฆ.
- ๊ณต๊ฐ๋ ๋ฉ์๋ ์ด์ฉํด ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ํฌ ๊ฒฝ์ฐ ๋ฉ์๋ ๋ด ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฆํ ์ ์๋ ๋ฃจํด ๋ฃ์ ์ ์์.
- ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ ๊ทผ ๊ถํ ์ฒดํฌํ ์ ์๋ ๋ก์ง ํฌํจ์ํค๋ฉด ์ธ๊ฐ๋์ง ์์ ์ฌ์ฉ์์๊ฒ ์ค์ํ ๋ฐ์ดํฐ/๋ก์ง ์จ๊ธธ ์ ์์.
- ๋ฉค๋ฒ๋ณ์๋ง private๊ฐ๋๊ฒ ์๋๊ณ , ์ธ๋ถ์ ๊ณต๊ฐํ๊ณ ์ถ์ง ์์ ๋ฉ์๋๋ค๋ private๋ก ์ ์ธ๊ฐ๋ฅ.
- ๋ณ์ ์ ๊ทผ์ ํ public์ผ๋ก ์ด์ด๋๋ฉด ๋ชจ๋ ๊ฐ์ด ์ ์ฅ๋ ์ ์์, but ์๋ชป๋ ๊ฐ๊น์ง๋ ์ ์ฅ๋ ์ ์๊ธฐ ๋๋ฌธ์ ์๋์ฌ์ฉ.
โถ์๋์ ์ฌ์ฉํ์ง ์๋๊ฒฝ์ฐ
์์ ์์์ฒ๋ผ ์๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ง์ง์๋ ์ ๋ณด์์๋ ๋ถ๊ตฌํ๊ณ ๊ฐ์ ๋ฐ์์ ์ถ๋ ฅํ๊ฒ ๋จ.
โถ์๋์ ์ฌ์ฉํ ์ข์ ์
์์ ์์์ฒ๋ผ setter๋ฅผ์ฌ์ฉํด ์กฐ๊ฑด์๋ฐ๋ผ ๊ฐ์ ์ ์ฅํ๊ณ ์ธ๋ถ์์ getter๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๊ฐ์ ๋ถ๋ฌ์จ๋ค.
↓
๊ฒฐ๊ณผ๋ ์ด์ํ ๊ฐ์ด ์๋ ์ํ๋ ์กฐ๊ฑด์ ๋ง๋ ๊ฐ์ด ์ ์ฅ๋ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
โถ ์๋ ์ฌ์ฉ ๋๋ฒ์งธ ์์
โถ++์์๋๋ฉด ์ข์ ๋จ์ถํค++
โ ๊ธฐ๋ณธ์์ฑ์ ์์ฑ ๋จ์ถํค : ctrl + space + enter
โ์์ฑ์ & getter/setter์์ฑ ๋จ์ถํค : alt + shift +s -> ์ํ๋ ์๋์์ฑ๋ฉ๋ด ํด๋ฆญ
'FOR SW ENGINEER๐ฉโ๐ป > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JAVA_์ ์ ์ ํ์ (Static) (0) | 2021.09.12 |
---|---|
JAVA _๋คํ์ฑ(Polymorphism) (0) | 2021.09.09 |
๊ตญ๋นJAVA์์ DAY-12 (0) | 2021.09.01 |
๊ตญ๋นJAVA์์ DAY-11(2) (0) | 2021.08.28 |
๊ตญ๋นJAVA์์ DAY-11 (0) | 2021.08.28 |