๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/๊ตญ๋น„์ง€์›

[D+15] ๋ฉ”๋ชจ๋ฆฌ๋งต ๋ณต์Šต, ํด๋ž˜์Šค(์ƒ์„ฑ์ž, static)

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2022. 10. 12.

 

๊ตญ๋น„์ง€์› 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์„ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ์†Œ์†๋˜์–ด์žˆ๋Š” ํด๋ž˜์Šค์—์„œ ๋…๋ฆฝ์ ์ธ ์ƒํƒœ์ผ ๋•Œ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์–ด๋”” ํด๋ž˜์Šค์— ์œ„์น˜ํ•ด์•ผํ•˜๋Š” ์ง€๋Š” ๊ตฌ๋ถ„์ง€์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํด๋ž˜์Šค๋ช….๋ฉ”์†Œ๋“œ๋ช… ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€