2024-08-12 00:07:19
๋ฐ˜์‘ํ˜•

์˜ค๋Š˜ ๊ณต๋ถ€ํ•  ์ž๋ฐ”์˜ ํด๋ž˜์Šค๋Š” ์‚ฌ์‹ค ์ž๋ฐ”์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ(?) ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ํ•ด๋„ ๊ณผ์–ธ์ด ์•„๋‹ ๊ฒƒ์ด๋‹ค.

 

์ด ํด๋ž˜์Šค๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๊ณ  ๊ฐ์ฒด์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์ž˜ ์•Œ์ง€ ๋ชปํ•œ๋‹ค๋ฉด, ์ž๋ฐ”๋กœ ๊ทธ ๋ฌด์—‡๋„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๊ธฐ์— ์–ด๋ ค์›€์„

๊ฐ€์งˆ ๊ฒƒ์ด๋‹ค.(๋ฌผ๋ก  ๊ฐ„๋‹จํ•œ๊ฒƒ๋“ค ๋นผ๊ณ ..)

 

๊ทธ๋งŒํผ ์—„์ฒญ๋‚˜๊ฒŒ ์ค‘์š”ํ•œ ๊ฐœ๋…์ด๋ฉด์„œ ๋™์‹œ์— ์–ด๋ ค์šด ๊ฐœ๋…์ด๊ธฐ๋„ ํ•˜๋‹ค.

 

ํด๋ž˜์Šค๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์ „์—, ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP : Object-Oriented Programming)์ด๋ผ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด

์•Œ๊ณ  ๊ฐˆ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€, ๋ง ๊ทธ๋Œ€๋กœ ๊ฐ์ฒด๋ฅผ ์ง€ํ–ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋‹ค. ๊ฐ์ฒด๋ผ๋Š” ๊ฒƒ์„ ์ค‘์‹ฌ์œผ๋กœ

ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฐ˜๋Œ€๋กœ๋Š” C์–ธ์–ด ๊ฐ™์€ ์ ˆ์ฐจ ์ง€ํ–ฅ ์–ธ์–ด๋„ ์กด์žฌํ•œ๋‹ค.

๊ทธ๋Ÿผ ๊ฐ์ฒด๋ž€ ๋ฌด์—‡์ผ๊นŒ? 

์ด ์ž๋ฐ”๋ฅผ ๋งŒ๋“  ํšŒ์‚ฌ์ธ ์˜ค๋ผํด์—์„œ๋Š” ๊ฐ์ฒด๋ฅผ ์ด๋ ‡๊ฒŒ ์„ค๋ช…ํ•œ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ ์„ธ๊ณ„์—์„œ ์ฃผ๋ณ€์„ ๋‘˜๋Ÿฌ๋ดค์„ ๋•Œ, ๋ณผ ์ˆ˜ ์žˆ๋Š” ์‹ค์ œํ•˜๋Š” ๊ฒƒ๋“ค์ด๋‹ค.

 

์ฆ‰, ์ž์ „๊ฑฐ๋„ ๊ฐ์ฒด๊ณ  ์ฑ…๋„ ๊ฐ์ฒด๊ณ  ํ•„ํ†ต๋„ ๊ฐ์ฒด๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋Ÿฐ ๊ฐ์ฒด๋ฅผ ์ง€ํ–ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌด์—‡์ด ์ข‹์€์ง€ ์•Œ์•„๋ณด์ž.

 

1. ์บก์Šํ™” : ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๋ฉค๋ฒ„(ํ•„๋“œ, ๋ฉ”์†Œ๋“œ)๋“ฑ์„ ๊ฐ์ฒด ์™ธ๋ถ€์—์„œ ๋ณผ์ˆ˜์—†๋„๋ก ์บก์Šํ™”ํ•œ๋‹ค --> ๋ณด์•ˆ์„ฑ์ด ์ข‹๋‹ค
2. ์ถ”์ƒํ™” : ๊ณตํ†ต๊ดธ ๊ธฐ๋Šฅ๊ณผ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•ด ๊ฐ์ฒดํ™”ํ•œ๋‹ค
3. ์ƒ์† : ๋ฏธ๋ฆฌ ์ •์˜๋œ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ชจ๋“  ๋ฉค๋ฒ„๋ฅผ ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ๋ฌผ๋ ค๋ฐ›๋Š”๋‹ค
4. ๋‹คํ˜•์„ฑ : ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค

 

์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์ด ๊ฐ์ฒด์˜ ํŠน์„ฑ์ด๋‹ค.

์šฐ๋ฆฌ๋Š” ์ž๋ฐ”์—์„œ ๊ฐ์ฒด์˜ ์ •๋ณด๋ฅผ ์ง์ ‘ ์ ‘๊ทผํ•˜์—ฌ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  -->"๋ฉ”์†Œ๋“œ"๋ผ๋Š” ๊ฒƒ์„ ํ†ตํ•ด ์ ‘๊ทผํ•œ๋‹ค.

 

์ž, ๊ทธ๋Ÿผ ์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ ํด๋ž˜์Šค๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

 

ํด๋ž˜์Šค๋ž€,

 

๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ฒญ์‚ฌ์ง„(blueprint)์ด๋ผ๊ณ  ์˜ค๋ผํด์— ๋ช…์‹œ๋˜์–ด์žˆ๋‹ค.

์ฆ‰, ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์„ค๊ณ„๋„ ๋˜๋Š” ํ‹€ ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค.

 

(์ฐธ๊ณ ๋กœ ์˜ค๋ผํด์˜ ์ž๋ฐ”์— ๋Œ€ํ•œ ์ •์˜ ์‚ฌ์ดํŠธ๊ฐ€ ๋ณธ ๋ธ”๋กœ๊ทธ "๊ณต๋ถ€" ์นดํ…Œ๊ณ ๋ฆฌ ์•ˆ์— ๋งํฌ๊ฐ€ ์žˆ๋‹ค)

 

๊ทธ๋ ‡๋‹ค๋ฉด ๊ทธ ํด๋ž˜์Šค๋ผ๋Š” ๊ฒƒ์€ ์–ด๋–ป๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋ƒ?

-->  <ํด๋ž˜์Šค ์„ ์–ธ>

class ํด๋ž˜์Šค๋ช…{
ํ•„๋“œ(field)
๋ฉ”์†Œ๋“œ(method)
์ƒ์„ฑ์ž(constructor)
}
ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ : ํ•„๋“œ, ๋ฉ”์†Œ๋“œ
* ํด๋ž˜์Šค๋ช… : ์ฒซ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ์ž‘์„ฑํ•œ๋‹ค

 

๊ทธ๋Ÿฌ๋ฉด ๋ฐ”๋กœ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž

ํด๋ž˜์Šค ์„ ์–ธ ์˜ˆ์‹œ

์ฃผ์˜์ ์€ ๋ฐ”๋กœ ๋ฉ”์ธ ๋ฉ”์†Œ๋“œ๋ฅผ ์„ ์–ธํ•˜๋ฉด ์•ˆ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

ํด๋ž˜์Šค์˜ ์ด๋ฆ„์„ User(ํด๋ž˜์Šค์˜ ์ฒซ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ๋ณดํ†ต ์ •์˜ํ•จ)๋ผ๊ณ  ๋งŒ๋“ค๊ณ  ๊ทธ ์•ˆ์— ํ•„๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.

ํ•„๋“œ๋Š” ์ฆ‰, ์ƒํƒœ๋‹ค. ๊ทธ ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง€๋Š” ๊ธฐ๋ณธ์ ์ธ ์ƒํƒœ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ํด๋ž˜์Šค๋ฅผ ์ •์˜ ํ–ˆ์œผ๋ฉด ์šฐ๋ฆฌ๋Š” ๋งˆ์น˜ ์ž๋ฃŒํ˜• ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฐ”๋กœ ์˜ˆ๋ฅผ ๋ณด์ž.

 

ํด๋ž˜์Šค ์‚ฌ์šฉ ์˜ˆ์‹œ

๋ฐ”๋กœ ๋ฉ”์ธ ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ์•ˆ์—

User user1 = new User(); ์ด๋ผ๊ณ  ์„ ์–ธ์„ ํ–ˆ๋‹ค.

๋ฐฐ์—ด๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ new๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ heap ๋ฉ”๋ชจ๋ฆฌ์— ์ฆ‰, ์ฃผ์†Œ๊ฐ’์„ user1์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, int๋‚˜ String๊ฐ™์€ ์ž๋ฃŒํ˜•์ด ๋“ค์–ด๊ฐ€๋Š” ์ž๋ฆฌ์— ์šฐ๋ฆฌ๊ฐ€ ๋ฐฉ๊ธˆ ๋งŒ๋“  ํด๋ž˜์Šค User๊ฐ€ ๋“ค์–ด๊ฐ€์žˆ๋‹ค.

๊ทธ๋Ÿฌ๊ณ  ๋‚˜์„œ ๊ทธ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ user1 ์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ๋ฐ”๋กœ ์ด๊ฒƒ์ด ๊ฐ์ฒดํ™”๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฐฉ๊ธˆ๊ณผ ๊ฐ™์€

๊ณผ์ •์„ ํ†ตํ•ด์„œ, User๋ผ๋Š” ์ฒญ์‚ฌ์ง„(ํด๋ž˜์Šค)๋ฅผ ์ด์šฉํ•ด ๊ฐ์ฒด๋ฅผ ์„ ์–ธํ•œ ๊ฒƒ์ด๋‹ค. ์ฆ‰, user1์ด ๊ฐ์ฒด๋‹ค.

์ด๋กœ์จ ์šฐ๋ฆฌ๋Š” ์ถ”์ƒ์ ์ด์—ˆ๋˜ ํด๋ž˜์Šค๋ฅผ ๊ฐ์ฒด๋กœ์จ ๊ตฌ์ฒดํ™” ์‹œํ‚ค๋Š” ์ž‘์—…์„ ํ•œ๊ฒƒ์ด๋‹ค.

 

์‹คํ–‰ ๊ฒฐ๊ณผ ์ฝ˜์†”์ฐฝ

๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์ฒซ์ค„๊ณผ ๋‘˜์งธ์ค„์€ ์šฐ๋ฆฌ๊ฐ€ ์•„๊นŒ ๋งŒ๋“  ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ์œ„์น˜๊ฐ€ ์•ž์— ๋‚˜์˜ค๊ณ  .User๋ผ๊ณ  ํด๋ž˜์Šค ๋ช…์ด ๋ช…์‹œ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ ์ฃผ์†Œ๊ฐ’์ด ๋‚˜์˜ค๋Š” ๊ฒƒ์ด๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ์•„๊นŒ User ํด๋ž˜์Šค ์•ˆ์— ๋งŒ๋“ค์—ˆ๋˜ String id = "kim" ๊ณผ String pw = "kim1234"๊ฐ€ ๋‚˜์˜ค๊ณ ์‹ถ์œผ๋ฉด

์ž…๋ ฅ ๋ฉ”์†Œ๋“œ ์•ˆ์— user1.id ๊ทธ๋ฆฌ๊ณ  user1.pw์™€ ๊ฐ™์ด ํด๋ž˜์Šค ํ•„๋“œ์— ์ž‘์„ฑํ•œ ๋ณ€์ˆ˜๋ฅผ ๊ฐ์ฒด ๋’ค์— ์ ์„ ์ฐ๊ณ  ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

์ฆ‰, ๊ฐ์ฒด.ํด๋ž˜์Šค์˜ ํ•„๋“œ์— ์„ ์–ธํ•œ ๋ณ€์ˆ˜ ํ˜•ํƒœ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์˜ค๋Š˜์€ ํด๋ž˜์Šค์™€ ๊ฐ์ฒด์˜ ๊ธฐ๋ณธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค.

๋‹ค์†Œ ์ƒ์†Œํ•œ ๋‚ด์šฉ์ด์ง€๋งŒ ์ดํ•ด๊ฐ€ ๋ ๋•Œ๊ฐ€์ง€ ํ•ด๋ณด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

728x90

'์–ธ์–ด > JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

JAVA : ๋ฉ”์†Œ๋“œ(method)  (0) 2024.08.12
JAVA : ์ƒ์„ฑ์ž  (0) 2024.08.12
JAVA : 2์ฐจ์› ๋ฐฐ์—ด  (0) 2024.08.09
JAVA : ๋ฐฐ์—ด(2)  (0) 2024.08.09
JAVA : ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ž๋ฃŒํ˜•์˜ ๋ฐฐ์—ด  (0) 2024.08.09