๊ตญ๋น์ง์ D+15
- ๋ฉ๋ชจ๋ฆฌ๋งต ๋ณต์ต, ํด๋์ค(์์ฑ์, static) -
๋ฉ๋ชจ๋ฆฌ๋งต
์ด๋ฒ์๊ฐ์๋ ์ง์ฌ์ง ์ฝ๋๋ฅผ ์ฌ์ฉํด์ ๋ฉ๋ชจ๋ฆฌ๋งต์ ํํํด ๋ณด๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด์๋ค.
์ค๋ช
ํด๋ณด์๋ฉด, ๋จผ์ ์คํ์์ญ์ ๋ฉ์ธํจ์์ ๋ํ ์คํํ๋ ์์ด ์๊ธฐ๊ณ ํ ์์ญ์ ๋ฐฐ์ด์ ๋ฃ์ด์ค ๋ค์์ ar์ ๋ฐฐ์ด์ ๋ํ ์ฐธ์กฐ๊ฐ์ ๋ฃ์ด์ค๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก MyClass๋ผ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด์ MyClass๊ฐ์ฒด๋ฅผ ํ์์ญ์ ์์ฑํด์ฃผ๊ณ ์ด์๋ํ ์ฐธ์กฐ๊ฐ์ mc์ ๋ฃ์ด์ฃผ๋ฉด ๋ฉ์ธํจ์์ ๋ํ ์คํํ๋ ์์์ญ์ ๋์ด๋๋ค.
์ดํ์ mc์ printArray์ ์ ๊ทผํ๊ฒ ๋๋ฉด printArray๋ Instruction-SET์ด๊ธฐ ๋๋ฌธ์ printArray๋ ๊ธ๋ก๋ฒ์์ญ์ ๋ค์ด๊ฐ ์์ผ๋ฉฐ, printArray๊ฐ ์คํ๋ ๋ ์คํ์์ญ์ printArray์ ๋ํ ์คํํ๋ ์์ด ์๊ธฐ๋ฉด์ this์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์๋๊ฒ ๋๋ค.
์ด๋ this๋ mc์ ์ฐธ์กฐ๊ฐ์ด ๋๊ฒ ๋ค.
๊ทธ๋ฆฌ๊ณ printArray์์ ํ๋ผ๋ฏธํฐ๋ก ar์ ์
๋ ฅ๋ฐ๊ธฐ ๋๋ฌธ์ ํ์์ ๋ฉ์ธ์์ญ์ ์๋ ar์ ์ฐธ์กฐ๊ฐ์ ๋ณต์ฌํ๊ฒ ๋๊ณ , MyClass์๋ํ ํ์์ญ์๋ ๋ช
๋ น์ด๋ฅผ ์ ๊ทผํ๊ธฐ ์ํ printArray์๋ํ ์์น์ ๋ณด๊ฐ ๋ค์ด๊ฐ๊ฒ ๋๋ ๊ฒ์ ์ ์ ์๋ค.
ํด๋์ค
• ์์ฑ์ Constructor
// ๋์
์ฐ์ฐ --> a๋ผ๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋นํ ๋ค์์ 10์ ๋ฃ์ด์ค
int a;
a = 10;
// ์ด๊ธฐํ์ฐ์ฐ --> b๋ผ๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋นํ๊ณ 10์ผ๋ก ์ด๊ธฐํํด์ค
int b = 10;
๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํด์ ๊ฐ์ ๋ฃ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋ค.
๊ทธ์ค์์ ์ฐ๋ฆฌ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ ๋ค์์ ๊ฐ์ ๋ฃ๋ ๋์ ์ฐ์ฐ๊ณผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ์ ๋ง์ ๊ฐ์ ์ด๊ธฐํ ํด์ ๋ฃ๋ ๋ฐฉ์์ธ ์ด๊ธฐํ์ฐ์ฐ์ด ์๋ค.
์ด๋, ์ด๊ธฐํ ์ฐ์ฐ์ฒ๋ผ ๊ฐ์ ๋ฐ๋ก ์ด๊ธฐํ ํ๋ ๊ฒ์ ์์ฑ์๋ผ๊ณ ํ๋ค.
์ฝ๋๋ฅผ ํตํด ํ์ธํด๋ณด๋ฉด Student๋ผ๋ ํด๋์ค๋ฅผ ๋ง๋ค์ด ์ค๋ค์์ ๋ฉ์ธํจ์์ Student๊ฐ์ฒด๋ฅผ ์์ฑํํ ์ฐธ์กฐ๊ฐ์ st1์ ๋ฃ์ด์ฃผ๊ฒ ๋๋๋ฐ new Student()๋ผ๋ ์ฝ๋๋ฅผ ํ์ธํ ์ ์๋๋ฐ ์ด Student()๋ถ๋ถ์ด ์ฌ์ค์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ฌ๋ผ๋ ์๋ฏธ์ด๊ธฐ๋ ํ์ง๋ง ์์ฑ์๋ฅผ ์ ํ ํด์ฃผ๋ผ๋ ์๋ฏธ์ด๊ธฐ๋ ํ ๊ฒ์ด๋ค.
์ด๋ ์์ฑ์๋ ์๋ต๋์ด์์ด ๋ด๊ฐ ๋ฐ๋ก ์ค์ ํด์ฃผ์ง ์์ผ๋ฉด ํ๋ฆฌํ๋ก์ธ์๊ฐ ์์ฑ์๋ฅผ ์์๋ก ๋ฃ์ด ์๋์ผ๋ก ์ฒ๋ฆฌ๋์ง๋ง ๋ด๊ฐ ๋ฐ๋ก ์์ฑ์๋ฅผ ์ ํ ํด์ ๊ฐ์ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ๋ ์กด์ฌํ๋ค.
- ์ผ๋ฐ์์ฑ์
์์ฑ์๋ ํด๋น ํด๋์ค ์์ ํด๋์ค์ด๋ฆ๊ณผ ๊ฐ๊ฒ ์ค์ ํด์ฃผ๋ฉด ๋๋ค.
๋ํ ์ ๊ทผ์ ์ด์๋ฅผ(public / private) ์์ฑํ์ง ์์๋ ์๋๋๋ฉฐ, ๋ฌผ๋ก ์ ๊ทผ์ ์ด์๋ฅผ ์ฌ์ฉํด์ ์์ฑ์๋ฅผ ๋ง๋ค์ด์ค๋ ๋๋ค.
์ด๋ ๊ฒ ์์ฑ์์์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ง์ง์๋ ๊ฒฝํ๋ฅผ ์ผ๋ฐ ์์ฑ์๋ผ๊ณ ํ๋ฉฐ ๋ด๊ฐ ํน๋ณํ ๊ฐ์ ์ง์ ํด ์ฃผ์ง ์์๋ ์ฌ๋งํ๋ฉด ์์ฑ์๋ ๋ฐ๋์ ๋ง๋ค์ด๋๋๊ฒ ์ข๋ค.
- ์ค๋ฒ๋ก๋ฉ๋ ์์ฑ์
๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ๋ฃ์ด์ ํด๋์ค ์์ ์๋ ๋ฐ์ดํฐ๊ฐ์ ๋ณ๊ฒฝํด ์ฃผ๊ณ ์ถ์๋ ์ฌ์ฉํ๋ ์์ฑ์๋ฅผ ์ค๋ฒ๋ก๋ฉ๋ ์์ฑ์๋ผ๊ณ ํ๋ค.
์ค๋ฒ๋ก๋ฉ์ ๋ํด์ ์ค๋ช ํ์๋ฉด ์ค๋ฒ๋ก๋ฉ์ ํจ์์ ์ด๋ฆ์ ๊ฐ์ผ๋ ๋งค๊ฐ๋ณ์์ ๊ฐ์๋, ํ์ ์ ํตํด์ ๋ค๋ฅธ ํจ์๋ก ์ ์ํ๋ ๊ฒ์ ์ค๋ฒ๋ก๋ฉ์ด๋ผ๊ณ ํ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์์ฑ์๋ ๋งค๊ฐ๋ณ์์ ๊ฐ์๋ ํ์ ์ ๋ค๋ฅด๊ฒ ์ค์ ํด์ ์ฌ๋ฌ๊ฐ๋ฅผ ๋ง๋ค์ด๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ํฉ์ ๋ฐ๋ผ ์์ฑ์๋ฅผ ๋ง๋ค์ด ์ค ์ ์๋ค.
๋จ ํ๋ผ๋ฏธํฐ์ ๋ฐ์ดํฐ ํ์ ์ ํตํด ์๋ณํ๊ธฐ ๋๋ฌธ์ ๋ช ํํ ํ๋ง๋ฆฌํฐ๋ฅผ ์ฌ์ฉํด์ผํ๋ค.
• static
- static์ ํค์๋๋ก static์ผ๋ก ์ค์ ํด์ค ๋์์ ๋ช ์์ ์ผ๋ก ์์น์์ผ์ค๋ค.
- ๊ณ ๊ธ์ ์ธ ํํ์ผ๋ก ์ ์ญํ ํค์๋๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๊ธฐ์กด์ ์ฐ๋ฆฌ๊ฐ ํด๋์ค ์์ ๋ค์ด์๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ค๋ ๊ฐ์ฒด๋ฅผ ์์ฑํด ์ค ๋ค์์ ๊ฐ์ฒด๋ฅผ ๊ฑฐ์ณ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ์ฃผ๋ ๋ฐฉ์์ ์ฌ์ฉํด์๋ค.
์ฆ, ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ์์ผ๋ฉด Instruction-SET์ ์ฐธ์กฐ๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ ์ ๊ทผํ์ฌ ํธ์ถํ ๋ฐฉ๋ฒ์ด ์์ด ๋ฉ์๋๋ฅผ ๋ถ๋ฌ์ฌ ๋ฐฉ๋ฒ์ด ์์๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ฐ๋ฐ ์ ์ญํ ํค์๋๋ผ๊ณ ๋ถ๋ฆฌ๋ static์ ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์๋ ์ ๊ทผ์ ์ ์ ๊ณตํด์ฃผ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ์์๋ ์ ๋์๋๋ค.
static์ ๋ถ์ด๋ฉด ๋ฉ๋ชจ๋ฆฌ๋งต์์ ๊ธ๋ก๋ฒ ์์ญ์ ๋ค์ด๊ฐ๊ฒ ๋๋ฉฐ, ๋ด๊ฐ ์์๋์ด ์๋ ํด๋์ค์๋ ๋ณ๊ฐ๋ก ๋์๋๋ ๊ฒ์ด๋ค.
์ด๋ง์ ์ฆ ๋ง์ฝ static์ ๋ณ์์ ๋ฌ์์ฃผ๊ฒ ๋๋ฉด ๊ธ๋ก๋ฒ ์์ญ์ ๋ค์ด๊ฐ ํด๋น๋ณ์๋ ๊ณ ์ ํ ์ ์ญ๋ณ์๊ฐ ๋๋ค๋ ๊ฒ์ ์๋ฏธํ๊ธฐ๋ ํ๋ค.
static์ ์ฌ์ฉํ ๋์๋ ์์๋์ด์๋ ํด๋์ค์์ ๋ ๋ฆฝ์ ์ธ ์ํ์ผ ๋ ์ฌ์ฉํด์ผํ๋ ํน์ง์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด๋ ํด๋์ค์ ์์นํด์ผํ๋ ์ง๋ ๊ตฌ๋ถ์ง์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ํด๋์ค๋ช .๋ฉ์๋๋ช ํ์์ผ๋ก ์ฌ์ฉํด์ผ ํ๋ค.
'์๋ > ๊ตญ๋น์ง์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[D+17] ์ฝ๋ฉ๋ฐ์ด (0) | 2022.10.14 |
---|---|
[D+16] ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ, ๊ฐ์ฒด์งํฅ์ ํ๋ก๊ทธ๋๋ฐ (0) | 2022.10.13 |
[D+14] ํด๋์ค, ์ถ์ํ, ์ฐธ์กฐํ์ ์์๋ณ์ (0) | 2022.10.11 |
[D+13] Sort, Bubble Sort (0) | 2022.10.10 |
[D+13] ์ฝ๋ฉ๋ฐ์ด (0) | 2022.10.10 |
๋๊ธ