๊ตญ๋น์ง์ D+56
- ์๋ฐํ๋ก๊ทธ๋๋ฐ2 -
ํด๋์ค์ ์ธ์คํด์ค
• ํด๋์ค
ํ๋ก๊ทธ๋จ์ ๋ฐ์ดํฐ์ ํจ์์ ์งํฉ์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํด๋์ค๋ ์์ฐ์ค๋ฝ๊ฒ ์ฐ๊ด๋์ด ์๋ ์๋ฃ(Data)์ ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ(Method)๊ฐ ๋ชจ์ฌ์๋ ์ฌ์ฉ์ ์ ์ํ ๋ฐ์ดํฐํ์ ์ด๋ค.
- Class = Data + Method
- Data : ํ๋ก๊ทธ๋จ์์ ์ ์น, ๊ด๋ฆฌํด์ผํ ๋ฐ์ดํฐ, Attribute๋ผ๊ณ ๋ ํ๋ค.
- Method : Data๋ฅผ ์กฐ์ํ๋ ํจ์
• ์ธ์คํด์ค
- ํด๋์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด ๊ตฌ์กฐํ๋ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ญ์ ์๋ฏธํ๋ฉฐ Object๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
- ์ธ์คํด์ค๋ ๋ชจ๋ ๊ฐ์ฒด์งํฅ ์ธ์ด๊ฐ ๋์ผํ ๋ฐฉ์์ผ๋ก ๋ง๋๋ ๊ฒ์ ์๋์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ์ ์ฌ์ฑ์ ๊ฐ์ง๊ณ ์๋ค.
๊ฐ์ฒด์งํฅ์ ๋ชฉ์
๊ฐ์ฒด์งํฅ์ ๋์ฒด์ ์ผ๋ก ์์ค๊ฐ ๋ณผ๋ฅจ์ด ์์ด์ผ ์๋ฏธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์์ค์ ์๊ณผ ๋ณผ๋ฅจ์ด ์๋ค๋ฉด ๊ฐ์ฒด์งํฅ์ ์๋ฏธ๊ฐ ์๋ค.
์ด๋ฌํ ๊ฐ์ฒด์งํฅ์ ๋ชฉ์ ์ ์์(์๊ฐ, ๋, ์ธ๋ ฅ ๋ฑ)๊ณผ ํ์ง์ ์ข๊ฒํ๊ธฐ ์ํ ๊ฒ์ผ๋ก ์ด๋ ์ ์ง๋ณด์์ฑ๊ณผ ๊ด๋ จ์ด ์๊ธฐ ๋๋ฌธ์ ๊ด๋ จ์๋ ๋ฐ์ดํฐ์ ๋ฉ์๋๋ฅผ ๋ฌถ์ด ์ ์ง๋ณด์์ฑ์ ๋์ธ๋ค. (๋ชจ๋ํ - ์์ง๋ ๋, ๊ฒฐํฉ๋ ๋ฎ)
• ์์ฑ์
ํด๋์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ ๋ ์ด๋ฅผ ์ด๊ธฐํ ํ๊ธฐ ์ํ ํน๋ณํ ๋ฉ์๋๋ก ํด๋์ค์ ์ด๋ฆ์ด ๊ฐ์ผ๋ ๋ฆฌํดํ์ด ์๋ค.
ํน์ง
- ๋ช ์์ ์ผ๋ก ์์ฑ์ ํ์ง ์์ ๊ฒฝ์ฐ ์๋ฐ์ปดํ์ผ๋ฌ๊ฐ ๊ธฐ๋ณธ์์ฑ์๋ฅผ ์ถ๊ฐํ๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ์ค๋ฒ๋ก๋ฉํ์ฌ ์ฌ์ฉํ๋ค. → ์ฌ๋ฌ๋ฐฉ์์ ์ด๊ธฐํ๋ฅผ ์ง์
- ์ปดํ์ผ๋ฌ๋ ๊ธฐ๋ณธ์์ฑ์๊ฐ ์๊ณ ์ค๋ฒ๋ก๋ฉ๋ ์์ฑ์๋ง ์๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์์ฑ์๋ฅผ ๋ฃ์ง ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ๋ฐ๋์ ๊ธฐ๋ณธ์์ฑ์๋ฅผ ์์ฑํ๋ ์ต๊ด์ ๋ค์ฌ์ผ ํ๋ค.
• ์๊ธฐ์ฐธ์กฐ๊ฐ(this)
- ์ธ์คํด์ค๋ ์๊ธฐ ์์ ์ ๋ํ ์ฐธ์กฐ๊ฐ(Reference value)์ ์๋ฏธํ๋ค.
- Method๋ ํ๋ผ๋ฏธํฐ๋ก this๋ฅผ ๋ฐ๋๋ค (์๋ต๋์ด ๋์ ๋ณด์ด์ง๋ ์๋๋ค)
- this๋ ์ธ์คํด์ค์ ๋ฉ์๋๋ฅผ binding(๋ฌถ๋ค)ํ๋ ์ญํ ์ ์ํํ๋ค.
this์ ์ฉ๋
์ธ์คํด์ค๋ฅผ ์์ฑํ๋ฉด ๋ฐ์ดํฐ๋ ์ธ์คํด์ค๋ฅผ ์์ฑํ ๊ฐ์๋งํผ ํ์ ์ฌ๋ผ๊ฐ์ง๋ง ๋ฉ์๋๊ฐ์ ๊ฒฝ์ฐ๋ only one์ด๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ๊ฐ์ ์ธ์คํด์ค๋ฅผ ์์ฑํด๋ global์์ญ์ ํ๋ ๋ค์ด๊ฐ ์๋ค.
์ด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ๊ฐ ์ธ์คํด์ค๋ ๋ฉ์๋์๊ฒ ํ๋ผ๋ฏธํฐ๋ก ๊ฐ์ ๋ณด๋ด์ฃผ๋ฉด์ this(์ฐธ์กฐ๊ฐ)์ ๋ณด๋ด์ฃผ๊ฒ ๋๊ณ ๋ฉ์๋๋ ํด๋น ์ฐธ์กฐ๊ฐ์ ํตํด์ ๊ฐ ์ธ์คํด์ค์ ๋ง๊ฒ ์๋๋๋ ๊ฒ์ด๋ค.
๋ง์น ๊ฐ๊ฐ์ ์ธ์คํด์ค์์ ์ฌ๋ฌ๊ฐ์ ํจ์๊ฐ ์๋๊ฒ ์ฒ๋ผ ๋์๊ฐ ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
ํจํค์ง
• ํจํค์ง (Package)
- JAVA Class๋ฅผ ๋ถ๋ฅํ์ฌ ์ฐพ๊ธฐ ์ฝ๊ฒ ํ๊ณ ์ถฉ๋์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ธฐ๋ฒ์ด๋ค.
- ํ์ผ์์คํ ์์ ๋๋ ํ ๋ฆฌ๊ณ ๊ตฌํ๋๋ฉฐ ์์ค์ฝ๋์์ import ํค์๋๋ฅผ ํตํด ์ ๊ทผํ ์ ์๋ค.
- ์ด๋ฆ์ถฉ๋์ ํผํ๊ธฐ์ํด ๋ณดํต ๊ณต๋์์ ์ ํ ๋ ๋ง์ด ์ฌ์ฉ๋๋ค.
• ํจํค์ง์ ๊ตฌ์กฐ
๋ง์ฝ com.base.linearfunction์ด๋ผ๊ณ ํจํค์ง๋ฅผ ๋ง๋ค์์ ๊ฒฝ์ฐ์ src/com/base/linearfunction/ ์ ๊ฐ์ด ๋์ผํ ๋๋ ํ ๋ฆฌ๊ฐ ๊ตฌ์กฐ๊ฐ ์์ฑ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ํ๋์ ํจํค์ง์ ์ฌ๋ฌ๊ฐ์ ํด๋์ค๊ฐ ์กด์ฌํ๋ฏ๋ก packageํค์๋๋ฅผ ์ด์ฉํ์ฌ ๋ฌถ์ด์ค๋ค.
• ์ ๊ทผ์ ์ด์
public
- ์๋ฌด๋ ๋ค ์ฐ๊ณ ์ฝ์ ์ ์๋ค. (์ด๋ป๊ฒ ๋๋ ์๊ดํ์ง ์๊ฒ ๋ค๋ ์๋ฏธ)
- ๋๊ตฌ๋ ์ฝ๊ณ ์ฐ๋ ์ ๊ฒฝ์ฐ์ง ์๊ธฐ ๋๋ฌธ์ ํด๋์ค๋ด์ ์๋ ๋ณ์๋ public์ผ๋ก ์ค์ ํด์ฃผ๋ฉด ์๋๋ค.
- ๋ฉ์๋๋ public์ ์ฌ์ฉํด๋ ๋๋๋ฐ ์ด์ ๋ ๋ฉ์๋๋ writing์ด ์๋ reading๋ง ๋๊ธฐ ๋๋ฌธ์ public์ ์ฌ์ฉํด์ค๋ ๋ฌด๋ฐฉํ๋ค.
private
- ๊ทธ ๋๊ตฌ๋ ์ ๊ทผ ํ ์ ์๋ค.
- ์ ๊ทผํ ๊ฒฝ์ฐ getter/setter๋ผ๋ ๋ฉ์๋๋ฅผ ํ์ฉํด ์ ๊ทผํ๋ค.
- ๋ฉ์๋๋ฅผ ํ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฌ๋ฐ๋ฅธ ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ณ ๋ถํ์ํ ์ ๊ทผ์ ๋ง์ ์ ์๋ค.
default
- ๋ฐ๋ก ์ ๊ทผ์ ์ด์๋ฅผ ์์ฑํ์ง ์๊ณ ์๋ตํ์ ๊ฒฝ์ฐ์ default๊ฐ ์ ์ฉ๋๋ค.
- ๊ฐ์ ํจํค์ง์ ์์ผ๋ฉด ๊ฐ์ ํจํค์ง์ ์๋ ํด๋์ค๋ค์ ์ก์ธ์ค ์ปจํธ๋กค์ด public ์ฒ๋ผ ๋์๊ฐ๋ค.
- default ์ฌ์ฉ์ ์ฃผ์์ฌํญ )
default๋ ๊ฐ๊ธ์ ์ผ๋ก ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค. → ๋ชจํธํ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐ์ํฌ์ ์๋ค.
์๋ฅผ๋ค์ด, a์ b๊ฐ ๊ฐ์ ํจํค์ง์ ์กด์ฌํ๋ฉฐ a, b ๋๋ค ์ ์์ ์ผ๋ก ์ ๋์๋๊ณ ์๋ ์ํ์ด๋ค.
a๋ default๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
๊ทธ๋ฐ๋ฐ a๊ฐ ๋ค๋ฅธ ํจํค์ง๋ก ์ด๋๋๋ค๋ฉด ๋ง์ฝ b๊ฐ ์กฐ๊ธ์ด๋ผ๋ a์ ์ฐ๊ด๋์ด ์๋ค๋ฉด b๋ ๊ฐ์๊ธฐ ๋์์ด ์๋ ์๋ ์๋ค๋ ๊ฒ์ด๋ค.
์ด๋ default์ ํน์ฑ์ผ๋ก ์ธํด ๋ฐ์๋ ์ ์๋ ๋ฌธ์ ์ด๋ค.
๋๊ธ