๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Java/Java์˜ ์ •์„

Chapter 06 - ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ 1

Chapter 06 - ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ 1

๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด

๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด์˜ ์—ญ์‚ฌ

  • ๊ฐ์ฒด์ง€ํ–ฅ ์ด๋ก ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์€ ์‹ค์ œ ์„ธ๊ณ„๋Š” ๊ฐ์ฒด๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๋ชจ๋“  ์‚ฌ๊ฑด๋“ค์€ ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ
  • ์ตœ์ดˆ์˜ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋Š” ์‹œ๋ฎฌ๋ผ (1960๋…„๋„ ์ค‘๋ฐ˜)
  • ์ž๋ฐ”์˜ 1995๋…„๋„ ๋ฐœํ‘œ ๋’ค 1990๋…„๋Œ€ ๋ง ์ธํ„ฐ๋„ท ๋ฐœ์ „๊ณผ ํ•จ๊ป˜ ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด๋„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด์˜ ์ฃผ๋ฅ˜๊ฐ€ ๋จ

๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด

  • ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์Œ
    • ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๊ธฐ์กด์˜ ์ฝ”๋“œ๋ฅผ ์ด์šฉ
  • ์ฝ”๋“œ ๊ฐ„์˜ ๊ด€๋ฆฌ ์šฉ์ด
    • ์ฝ”๋“œ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ด์šฉํ•ด์„œ ์ ์€ ๋…ธ๋ ฅ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝ
  • ์‹ ๋ขฐ์„ฑ์ด ๋†’์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    • ์ œ์–ด์ž์™€ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ๋ฐ ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’ ์œ ์ง€
    • ์ฝ”๋“œ์˜ ์ค‘๋ณต ์ œ๊ฑฐ (๋ถˆ์ผ์น˜๋กœ ์ธํ•œ ์˜ค๋™์ž‘ ๋ฐฉ์ง€)

ํด๋ž˜์Šค์™€ ๊ฐ์ฒด

ํด๋ž˜์Šค์™€ ๊ฐ์ฒด์˜ ์ •์˜์™€ ์šฉ๋„

ํด๋ž˜์Šค

  • ํด๋ž˜์Šค์˜ ์ •์˜
    • ๊ฐ์ฒด๋ฅผ ์ •์˜ํ•ด ๋†“์€ ๊ฒƒ
  • ํด๋ž˜์Šค์˜ ์šฉ๋„
    • ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

๊ฐ์ฒด

  • ๊ฐ์ฒด์˜ ์ •์˜
    • ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š” ์‚ฌ๋ฌผ์ด๋‚˜ ๊ฐœ๋…
  • ๊ฐ์ฒด์˜ ์šฉ๋„
    • ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ธฐ๋Šฅ๊ณผ ์†์„ฑ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„
  • ์œ ํ˜•์˜ ๊ฐ์ฒด
    • ์ฑ…์ƒ, ์˜์ž, ์ž๋™์ฐจ ๋“ฑ๋“ฑ...
  • ๋ฌดํ˜•์˜ ๊ฐ์ฒด
    • ์ˆ˜ํ•™๊ณต์‹, ํ”„๋กœ๊ทธ๋žจ ์—๋Ÿฌ์™€ ๊ฐ™์€ ๋…ผ๋ฆฌ & ๊ฐœ๋…

ํด๋ž˜์Šค์™€ ๊ฐ์ฒด์˜ ๊ด€๊ณ„๋Š” ์ œํ’ˆ ์„ค๊ณ„๋„์™€ ์ œํ’ˆ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„

  • ํ•˜๋‚˜์˜ ์„ค๊ณ„๋„๋งŒ ๋งŒ๋“ค์–ด ๋†“์œผ๋ฉด ์ œํ’ˆ์„ ๋งŒ๋“œ๋Š” ์ผ์ด ์‰ฌ์›Œ์ง
  • JDK์—์„œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด ๋งŽ์€ ์ˆ˜์˜ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต

๊ฐ์ฒด์™€ ์ธ์Šคํ„ด์Šค

  • ์ธ์Šคํ„ด์Šคํ™” : ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •
  • ์ธ์Šคํ„ด์Šค : ์–ด๋–ค ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด

์ข€ ๋” ๋‚˜์€ ํ‘œํ˜„ -> ์ฑ…์ƒ์€ ๊ฐ์ฒด๋‹ค., ์ฑ…์ƒ์€ ์ฑ…์ƒ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋‹ค.

ํด๋ž˜์Šค -> (์ธ์Šคํ„ด์Šคํ™”) -> ์ธ์Šคํ„ด์Šค(๊ฐ์ฒด)

๊ฐ์ฒด์˜ ๊ตฌ์„ฑ์š”์†Œ - ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ

๊ฐ์ฒด๋Š” ๋‹ค์ˆ˜์˜ ์†์„ฑ๊ณผ ๋‹ค์ˆ˜์˜ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง -> ๊ฐ์ฒด๋Š” ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ์˜ ์ง‘ํ•ฉ

๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง„ ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ์„ ๋ฉค๋ฒ„๋ผ ํ•จ

  • ์†์„ฑ
    • ๋ฉค๋ฒ„ ๋ณ€์ˆ˜, ํŠน์„ฑ, ํ•„๋“œ, ์ƒํƒœ
  • ๊ธฐ๋Šฅ
    • ๋ฉ”์„œ๋“œ, ํ•จ์ˆ˜, ํ–‰์œ„

์„ ์–ธ ์‹œ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋“ค์„ ๋ชจ์•„์„œ ๋จผ์ € ์„ ์–ธ ํ›„ ๋ฉ”์„œ๋“œ๋ผ๋ฆฌ ๋ชจ์•„์„œ ์„ ์–ธ

์ธ์Šคํ„ด์Šค์˜ ์ƒ์„ฑ๊ณผ ์‚ฌ์šฉ

  • ํด๋ž˜์Šค๋ช… ๋ณ€์ˆ˜๋ช…;
    • ex) Tv t;
    • Tv ํด๋ž˜์Šค ํƒ€์ž…์˜ ์ฐธ์กฐ ๋ณ€์ˆ˜ t๋ฅผ ์„ ์–ธ
    • ๋ฉ”๋ชจ๋ฆฌ์— ์ฐธ์กฐ ๋ณ€์ˆ˜ t๋ฅผ ์œ„ํ•œ ๊ณต๊ฐ„ ์ƒ์„ฑ
  • ๋ณ€์ˆ˜๋ช… = new ํด๋ž˜์Šค๋ช…();
    • ex) t = new Tv();
    • ์—ฐ์‚ฐ์ž new์— ์˜ํ•ด Tv ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋นˆ ๊ณต๊ฐ„์— ์ƒ์„ฑ
    • ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” ๊ฐ ์ž๋ฃŒํ˜•์— ํ•ด๋‹นํ•˜๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”
    • ๋Œ€์ž… ์—ฐ์‚ฐ์ž์— ์˜ํ•ด ์ƒ์„ฑ๋œ ๊ฐ์ฒด์˜ ์ฃผ์†Ÿ๊ฐ’์ด ์ฐธ์กฐ ๋ณ€์ˆ˜ t์— ์ €์žฅ
  • (์ฐธ์กฐ ๋ณ€์ˆ˜).(๋ฉค๋ฒ„ ๋ณ€์ˆ˜) = ๋ฆฌํ„ฐ๋Ÿด;
    • ex) t.channel = 7;
    • ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์—๊ฒŒ ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’์„ ์ €์žฅ
    • (์ฐธ์กฐ ๋ณ€์ˆ˜).(๋ฉค๋ฒ„ ๋ณ€์ˆ˜)๋กœ ์†์„ฑ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • (์ฐธ์กฐ ๋ณ€์ˆ˜).๋ฉ”์„œ๋“œ();
    • ex) t.channelDown();
    • ์ธ์Šคํ„ด์Šค์˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ

์ธ์Šคํ„ด์Šค๋Š” ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Œ
์ฐธ์กฐ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์€ ์ธ์Šคํ„ด์Šค ํƒ€์ž…๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•จ

๊ฐ์ฒด ๋ฐฐ์—ด

๊ฐ์ฒด ์—ญ์‹œ ๋ฐฐ์—ด๋กœ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅ

  • ๋ฐฐ์—ด ์•ˆ์— ๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ€ ์ €์žฅ
    • ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฐ์ฒด ๋ฐฐ์—ด์€ ์ฐธ์กฐ ๋ณ€์ˆ˜๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ์€ ์ฐธ์กฐ ๋ณ€์ˆ˜ ๋ฐฐ์—ด
  • ์ƒ์„ฑ ์งํ›„๋Š” ๊ธฐ๋ณธ ๊ฐ’์ธ null๋กœ ์ž๋™ ์ดˆ๊ธฐํ™”
    • ์ฃผ์˜ํ•  ๊ฒƒ
  • ๊ฐ์ฒด ๋ฐฐ์—ด๋„ ๊ฐ™์€ ํƒ€์ž…์˜ ๊ฐ์ฒด๋งŒ ์ €์žฅ ๊ฐ€๋Šฅ
    • ๋‹คํ˜•์„ฑ์œผ๋กœ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

ํด๋ž˜์Šค์˜ ๋˜ ๋‹ค๋ฅธ ์ •์˜

ํด๋ž˜์Šค๋ž€ ๋ฐ์ดํ„ฐ์™€ ํ•จ์ˆ˜์˜ ๊ฒฐํ•ฉ

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฐ์ดํ„ฐ ์ €์žฅ ํ˜•ํƒœ์˜ ๋ฐœ์ „ ๊ณผ์ •
    1. ๋ณ€์ˆ˜ -> ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋งŒ ์ €์žฅ
    2. ๋ฐฐ์—ด -> ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ €์žฅ
    3. ๊ตฌ์กฐ์ฒด -> ์„œ๋กœ ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ €์žฅ (์ข…๋ฅ˜์— ๊ด€๊ณ„ x)
    4. ํด๋ž˜์Šค -> ๋ฐ์ดํ„ฐ์™€ ํ•จ์ˆ˜์˜ ๊ฒฐํ•ฉ(๊ตฌ์กฐ์ฒด + ํ•จ์ˆ˜)

ํด๋ž˜์Šค - ์‚ฌ์šฉ์ž ์ •์˜ ํƒ€์ž…(user-defined type)

  • primitive type ์ž๋ฃŒํ˜• ์™ธ์— ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๊ด€๋ จ๋œ ๋ณ€์ˆ˜๋“ค์„ ๋ฌถ์–ด์„œ ํƒ€์ž…์„ ์ƒˆ๋กœ ์ถ”๊ฐ€
  • ๊ธฐ๋ณธํ˜•์˜ ์ข…๋ฅ˜๋Š” 8๊ฐœ
  • ์—ฐ๊ด€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์–ด์„œ ํด๋ž˜์Šค๋กœ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ์ฒด์ง€ํ–ฅ์  ์„ค๊ณ„
  • ์ œ์–ด์ž์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ž๋ฃŒ์— ๋Œ€ํ•œ ์กฐ๊ฑด๋“ค์„ ์ฝ”๋“œ์— ์‰ฝ๊ฒŒ ๋ฐ˜์˜ ๊ฐ€๋Šฅ

๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ

์„ ์–ธ ์œ„์น˜์— ๋”ฐ๋ฅธ ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜

๋ฉค๋ฒ„ ๋ณ€์ˆ˜(ํด๋ž˜์Šค ์˜์—ญ์— ์„ ์–ธ)

  • ํด๋ž˜์Šค ๋ณ€์ˆ˜
    • ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ๋•Œ ์ƒ์„ฑ
    • static์„ ๋ถ™์—ฌ์•ผ ํ•จ
    • ์ธ์Šคํ„ด์Šค๊ฐ€ ์—†์ด๋„ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • (ํด๋ž˜์Šค ์ด๋ฆ„).(ํด๋ž˜์Šค ๋ณ€์ˆ˜)์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ
  • ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
    • ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์„ ๋•Œ ์ƒ์„ฑ
    • ๋จผ์ € ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•จ
    • ๊ฐ ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๊ณ ์œ ํ•œ ๊ฐ’

์ง€์—ญ๋ณ€์ˆ˜

  • ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ์ด ์ˆ˜ํ–‰๋˜์—ˆ์„ ๋•Œ ์ƒ์„ฑ
  • ํด๋ž˜์Šค ์˜์—ญ ์ด์™ธ์˜ ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž, ์ดˆ๊ธฐํ™” ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ ์„ ์–ธ
  • ๋ฉ”์„œ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์†Œ๋ฉธ

ํด๋ž˜์Šค ๋ณ€์ˆ˜์™€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜

  • ์นด๋“œ๋กœ ์˜ˆ์ œ) ๋ฌด๋Šฌ ์ˆซ์ž๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜, ํญ, ๋†’์ด๋Š” ํด๋ž˜์Šค ๋ณ€์ˆ˜
  • ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ์ƒ์„ฑ
    • ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๊ฐ’์„ ์œ ์ง€
  • ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•˜๋‚˜์˜ ์ €์žฅ ๊ณต๊ฐ„์„ ๊ณต์œ 
    • ํ•ญ์ƒ ๊ณตํ†ต๋œ ๊ฐ’

๋ฉ”์„œ๋“œ

  • ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ผ๋ จ์˜ ๋ฌธ์žฅ๋“ค์„ ๋ฌถ์€ ๊ฒƒ
  • ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ๋งŒ ์•Œ๋ฉด ๋จ -> ๋ธ”๋ž™๋ฐ•์Šค๋ผ๊ณ ๋„ ํ•จ
  • ๋ฉ”์„œ๋“œ์˜ ์ด์ 
    • ๋†’์€ ์žฌ์‚ฌ์šฉ์„ฑ (ํ•œ ๋ฒˆ ๋งŒ๋“  ๋ฉ”์„œ๋“œ๋Š” ๋ช‡ ๋ฒˆ์ด๊ณ  ํ˜ธ์ถœ ๋ฐ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
    • ์ค‘๋ณต๋œ ์ฝ”๋“œ์˜ ์ œ๊ฑฐ(๋ฐ˜๋ณต์ ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ๋ฌธ์žฅ๋“ค์€ ๋ฉ”์„œ๋“œ๋กœ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•  ๊ฒƒ)
    • ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์กฐํ™” (๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์—…๋‹จ์œ„๋กœ ๋งŒ๋“ค์–ด ๋†“๊ณ  ์™„์„ฑํ•ด๊ฐ€๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•)

๋ฉ”์„œ๋“œ์˜ ์„ ์–ธ๊ณผ ๊ตฌํ˜„

  • ๋ฉ”์„œ๋“œ๋Š” ์„ ์–ธ๋ถ€(๋จธ๋ฆฌ)์™€ ๊ตฌํ˜„๋ถ€(๋ชธํ†ต)๋กœ ์ด๋ฃจ์–ด์ง
  • ๋ฉ”์„œ๋“œ ์„ ์–ธ๋ถ€
    • ๋ฐ˜ํ™˜ ํƒ€์ž… + ๋ฉ”์„œ๋“œ ์ด๋ฆ„ + ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ์–ธ์œผ๋กœ ์ด๋ฃจ์–ด์ง
    • ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์‹ ์ค‘ํžˆ (์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๋ฐ”๊ฟ”์•ผ ํ•˜๋ฏ€๋กœ)
  • ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ์–ธ
    • ํ•„์š”ํ•œ ๊ฐ’์˜ ๊ฐœ์ˆ˜๋งŒํผ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์„ ์–ธ
    • ๋‘ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ฐ™์•„๋„ ๋ณ€์ˆ˜ ํƒ€์ž… ์ƒ๋žต ๋ถˆ๊ฐ€
  • ๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„
    • ๋™์‚ฌ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ
    • ์ด๋ฆ„์œผ๋กœ๋„ ๊ธฐ๋Šฅ์„ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ํ•จ์ถ• & ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„์ด ์ข‹๋‹ค.
  • ๋ฐ˜ํ™˜ ํƒ€์ž…
    • ์ถœ๋ ฅ ๊ฒฐ๊ณผ์ธ ๋ฐ˜ํ™˜๊ฐ’์˜ ํƒ€์ž…
    • ๋ฐ˜ํ™˜๊ฐ’์ด ์—†์„ ์‹œ void
  • ๋ฉ”์„œ๋“œ์˜ ๊ตฌํ˜„๋ถ€
    • ์„ ์–ธ๋ถ€ ๋‹ค์Œ์— ์˜ค๋Š” ๊ด„ํ˜ธ -> {}
    • ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์‹œ ์ˆ˜ํ–‰๋  ๋ฌธ์žฅ๋“ค
  • return ๋ฌธ
    • void๊ฐ€ ์•„๋‹ ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ return ๋ฐ˜ํ™˜๊ฐ’;
    • ๋ฐ˜ํ™˜ ๊ฐ’์˜ ํƒ€์ž…์€ ๋ฐ˜ํ™˜ ํƒ€์ž…๊ณผ ์ผ์น˜ or ์ž๋™ ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ
    • ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ return๋ฌธ์€ ๋‹จ ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ๋ฐ˜ํ™˜
  • ์ง€์—ญ๋ณ€์ˆ˜
    • ๋ฉ”์„œ๋“œ ๋‚ด์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋“ค
    • ๊ทธ ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๋ฉ”์„œ๋“œ์˜ ํ˜ธ์ถœ

  • ๋ฉ”์„œ๋“œ ์ด๋ฆ„(๊ฐ’1, ๊ฐ’2, ...);
  • ์ธ์ž์™€ ๋งค๊ฐœ๋ณ€์ˆ˜
    • ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์‹œ ๊ด„ํ˜ธ ์•ˆ์— ์ง€์ •ํ•ด ์ค€ ๊ฐ’๋“ค์ด ์ธ์ž ํ˜น์€ ์ธ์ˆ˜
    • ์ธ์ž์˜ ๊ฐœ์ˆ˜์™€ ์ˆœ์„œ๋Š” ๋ฉ”์„œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ผ์น˜ํ•ด์•ผ ํ•จ
  • ๋ฉ”์„œ๋“œ ์‹คํ–‰ ํ๋ฆ„
    • ๊ฐ™์€ ํด๋ž˜์Šค ๋‚ด์˜ ๋ฉ”์„œ๋“œ๋ผ๋ฆฌ๋Š” ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ์„œ๋กœ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅ
    • ํ•˜์ง€๋งŒ static ๋ฉ”์„œ๋“œ๋Š” ๊ฐ™์€ ํด๋ž˜์Šค ๋‚ด์˜ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ๋ถˆ๊ฐ€๋Šฅ

return ๋ฌธ

  • return ๋ฌธ์€ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ฉ”์„œ๋“œ๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ํ˜ธ์ถœํ•œ ๋ฉ”์„œ๋“œ๋กœ ๋Œ์•„๊ฐ
  • ๋ฐ˜ํ™˜๊ฐ’์˜ ์œ ๋ฌด์— ๊ด€๊ณ„์—†์ด ์ ์–ด๋„ ํ•˜๋‚˜์˜ return ๋ฌธ์ด ์žˆ์–ด์•ผ ํ•จ
    • void์—์„œ ์ƒ๋žต ์‹œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋งˆ์ง€๋ง‰์— return; ์ฒ˜๋ฆฌ
  • return ๋ฌธ ์œ„์น˜์— ์ˆ˜์‹๋„ ๊ฐ€๋Šฅ
    • ์ˆ˜์‹์ด ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ˆ˜์‹์„ ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜ํ™˜
  • ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ
    • ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋Š” ๊ตฌํ˜„๋ถ€๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ผ
    • ๋‚˜๋ˆ„๊ธฐ์˜ ๊ฒฐ๊ณผ๋ฅผ return ํ•˜๋Š” ๋ฉ”์„œ๋“œ์—์„œ 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๋“ฑ์˜ ์˜ˆ์™ธ๋Š” return 0;์œผ๋กœ ์ฒ˜๋ฆฌ

JVM์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

JVM์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉด ์‹œ์Šคํ…œ์œผ๋กœ๋ถ€ํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๋ฐ›๊ณ  ์šฉ๋„์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๊ด€๋ฆฌ

  • ๋ฉ”์„œ๋“œ ์˜์—ญ (method area)
    • ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค์˜ ํด๋ž˜์Šค ํŒŒ์ผ(*.class)๋ฅผ ์ฝ์€ ํ›„ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ •๋ณด(ํด๋ž˜์Šค ๋ฐ์ดํ„ฐ)๋ฅผ ์ €์žฅ
    • ํด๋ž˜์Šค ๋ณ€์ˆ˜๋„ ํ•จ๊ป˜ ์ €์žฅ
  • ํž™(heap)
    • ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ณต๊ฐ„
    • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ์ƒ์„ฑ๋˜๋Š” ์ธ์Šคํ„ด์Šค๋Š” ๋ชจ๋‘ ํž™ ์˜์—ญ์— ์ €์žฅ
  • ํ˜ธ์ถœ ์Šคํƒ(call stack ๋˜๋Š” execution stack)
    • ๋ฉ”์„œ๋“œ์˜ ์ž‘์—…์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ์ œ๊ณต
    • ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์‹œ ํ˜ธ์ถœ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น (์Šคํƒ์— ํ• ๋‹น๋ฐ›์Œ)
    • ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ง€์—ญ๋ณ€์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜ ํฌํ•จ) ๋“ค๊ณผ ์—ฐ์‚ฐ์˜ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ ๋“ฑ์„ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
    • ๊ฐ ๋ฉ”์„œ๋“œ๋ฅผ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ์ž‘์—… ๊ณต๊ฐ„์€ ์„œ๋กœ ๊ตฌ๋ณ„๋จ
    • ๋ฉ”์„œ๋“œ ์ˆ˜ํ–‰ ์ค‘ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๊ทธ ๋ฉ”์„œ๋“œ์˜ ๋ฐ”๋กœ ์œ„์— ํ˜ธ์ถœ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ์œ„ํ•œ ๊ณต๊ฐ„ ๋งˆ๋ จ (๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ˜ธ์ถœ ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ฉ”์„œ๋“œ)
    • ์ฒ˜์Œ์—” main()์ด ์˜ฌ๋ผ๊ฐ
    • ๋ฉ”์„œ๋“œ๊ฐ€ ์ž‘์—…์„ ๋งˆ์น˜๋ฉด ํ• ๋‹น๋˜์—ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ๋ฐ˜ํ™˜ ํ›„ ๋น„์›Œ์ง

๊ธฐ๋ณธํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ฐธ์กฐํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜

  • ๊ธฐ๋ณธํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. (read only)
    • ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๊ธฐ๋ณธํ˜•์ผ ๋•Œ๋Š” ๊ธฐ๋ณธํ˜• ๊ฐ’์ด ๋ณต์‚ฌ๋˜๊ธฐ ๋•Œ๋ฌธ
    • ํ˜ธ์ถœ๋œ ๋ฉ”์„œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ณต์‚ฌ๋œ ๊ฐ’์ด๋ฏ€๋กœ ์ˆ˜์ •ํ•ด๋„ ์›๋ณธ์—” ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ๋ชปํ•จ
  • ์ฐธ์กฐํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฝ๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. (read & write)
    • ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ์ฐธ์กฐํ˜•์ผ ๋•Œ๋Š” ์ธ์Šคํ„ด์Šค์˜ ์ฃผ์†Œ๊ฐ€ ๋ณต์‚ฌ๋˜๊ธฐ ๋•Œ๋ฌธ
    • ๊ฐ’์ด ์ €์žฅ๋œ ์ฃผ์†Œ๋ฅผ ๋„˜๊ฒจ์ฃผ์—ˆ์œผ๋ฏ€๋กœ ๋ณ€๊ฒฝ๋„ ๊ฐ€๋Šฅ (๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฏ€๋กœ)
  • ๋ฐฐ์—ด๋„ ๊ฐ์ฒด์™€ ๊ฐ™์ด ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ๊ณต๊ฐ„์— ์ ‘๊ทผํ•˜๋ฏ€๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฐธ์กฐํ˜• ๋ฐ˜ํ™˜ ํƒ€์ž…

  • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐ˜ํ™˜ ํƒ€์ž…๋„ ์ฐธ์กฐํ˜•์ด ๋  ์ˆ˜ ์žˆ์Œ
  • ๊ฐ์ฒด์˜ ์ฃผ์†Œ์ธ ์ •์ˆซ๊ฐ’์ด ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒƒ
  • ํ˜ธ์ถœ ๊ฒฐ๊ณผ๋Š” ๊ฐ™์€ ํƒ€์ž…์˜ ์ฐธ์กฐ ๋ณ€์ˆ˜์ด์–ด์•ผ ํ•จ

์žฌ๊ท€ ํ˜ธ์ถœ

  • ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ ๋ฉ”์„œ๋“œ ์ž์‹ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ
  • ๋ฉ”์„œ๋“œ๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ์กฐ๊ฑด์ด ๋ฐ˜๋“œ์‹œ ํ•„์š”
    • ๊ณ„์†ํ•ด์„œ ์žฌ๊ท€ ํ˜ธ์ถœ๋งŒ ์ผ์–ด๋‚˜๊ฒŒ ๋œ๋‹ค๋ฉด ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์—๋Ÿฌ ๋ฐœ์ƒ
    • ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ž˜ ํ•  ๊ฒƒ
  • ๋Œ€๋ถ€๋ถ„์˜ ์žฌ๊ท€ ํ˜ธ์ถœ์€ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ž‘์„ฑ ๊ฐ€๋Šฅ
    • ์žฌ๊ท€ ํ˜ธ์ถœ์€ ๋ฐ˜๋ณต๋ฌธ๋ณด๋‹ค ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ณต์‚ฌ์™€ ์ข…๋ฃŒ, ๋ณต๊ท€ํ•  ์ฃผ์†Œ ์ €์žฅ ๋“ฑ์ด ์ถ”๊ฐ€์ ์œผ๋กœ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆผ
    • ๊ทธ๋Ÿผ์—๋„ ์žฌ๊ท€ ํ˜ธ์ถœ์ด ์ฃผ๋Š” ๋…ผ๋ฆฌ์  ๊ฐ„๊ฒฐํ•จ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ

ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ(static)์™€ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ

  • static์ด ๋ถ™์–ด์žˆ๋Š” ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ, ๊ทธ๋ ‡์ง€ ์•Š์€ ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ
  • ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋„ ํด๋ž˜์Šค ๋ณ€์ˆ˜์ฒ˜๋Ÿผ (ํด๋ž˜์Šค ์ด๋ฆ„).(๋ฉ”์„œ๋“œ ์ด๋ฆ„(๋งค๊ฐœ๋ณ€์ˆ˜))์™€ ๊ฐ™์€ ์‹์œผ๋กœ ํ˜ธ์ถœ ๊ฐ€๋Šฅ
  • ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์™€ ๊ด€๋ จ๋œ ์ž‘์—…์„ ํ•˜๋Š” ๋ฉ”์„œ๋“œ
  • ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค์™€ ๊ด€๊ณ„์—†๋Š”(์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋‚˜ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”) ๋ฉ”์„œ๋“œ
  • ์œ ์˜ ์‚ฌํ•ญ
    • ํด๋ž˜์Šค๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ, ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ์ค‘ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์— ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— static์„ ๋ถ™์ผ ๊ฒƒ
    • ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์•„๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ(ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ ์‹œ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ)
    • ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, static์„ ๋ถ™์ด๋Š” ๊ฒƒ์„ ๊ณ ๋ ค

ํด๋ž˜์Šค ๋ฉค๋ฒ„์™€ ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„ ๊ฐ„์˜ ์ฐธ์กฐ์™€ ํ˜ธ์ถœ

  • ํด๋ž˜์Šค ๋ฉค๋ฒ„ : ํด๋ž˜์Šค ๋ณ€์ˆ˜ & ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ
  • ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„ : ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ & ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ
  • ํด๋ž˜์Šค ๋ฉค๋ฒ„๊ฐ€ ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„๋ฅผ ์ฐธ์กฐ ๋˜๋Š” ํ˜ธ์ถœํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•จ
    • ํด๋ž˜์Šค ๋ฉค๋ฒ„๊ฐ€ ์กด์žฌํ•˜๋Š” ์‹œ์ ์— ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ
    • ex) int iv์™€ ๊ฐ™์€ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ๋ฐ”๋กœ println(iv) ํ•  ์ˆœ ์—†๊ณ  ํŠน์ • ์ธ์Šคํ„ด์Šค c๋ฅผ ๋งŒ๋“  ํ›„ println(c.iv)
  • ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„๋Š” ๊ฐ™์€ ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„๋‚˜ ํด๋ž˜์Šค ๋ฉค๋ฒ„ ๋ชจ๋‘ ์ฐธ์กฐ ๋˜๋Š” ํ˜ธ์ถœ ๊ฐ€๋Šฅ
    • ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ด๋ฏธ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Œ์„ ์˜๋ฏธ, ํด๋ž˜์Šค ๋ฉค๋ฒ„๋Š” ๊ทธ ์‹œ์ ์— ์ด๋ฏธ ํ•ญ์ƒ ์กด์žฌ

์˜ค๋ฒ„๋กœ๋”ฉ

์˜ค๋ฒ„๋กœ๋”ฉ์ด๋ž€?

  • ํด๋ž˜์Šค ๋‚ด์— ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์ •์˜ํ•˜๋Š” ๊ฒƒ
    • ์˜ค๋ฒ„๋กœ๋”ฉ์€ ๋งŽ์ด ์‹ฃ๋Š”๋‹ค๋Š” ๋œป -> ํ•˜๋‚˜์˜ ๋ฉ”์„œ๋“œ๋กœ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ๊ตฌ๋ณ„ํ•˜๋Š” ๊ธฐ๋Šฅ

์˜ค๋ฒ„๋กœ๋”ฉ์˜ ์กฐ๊ฑด

  • ๋ฉ”์„œ๋“œ ์ด๋ฆ„์ด ๊ฐ™์•„์•ผ ํ•จ
  • ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜ ๋˜๋Š” ํƒ€์ž…์ด ๋‹ฌ๋ผ์•ผ ํ•จ
  • ๋ฐ˜ํ™˜ ํƒ€์ž…์€ ์˜ค๋ฒ„๋กœ๋”ฉ์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์„ ๋ชป ์ค€๋‹ค.

์˜ค๋ฒ„๋กœ๋”ฉ์˜ ์˜ˆ

  • println ๋ฉ”์„œ๋“œ
  • ์ •์˜๋œ ๋ฉ”์„œ๋“œ๊ฐ€ ๋‹ฌ๋ผ๋„ ๊ฐ™์€ ๋กœ์ง์„ ์ˆ˜ํ–‰

์˜ค๋ฒ„๋กœ๋”ฉ์˜ ์žฅ์ 

  • ํƒ€์ž…๊ณผ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ฉ”์„œ๋“œ ๊ฐ๊ฐ์˜ ์ด๋ฆ„์„ ์ง“๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์–ตํ•˜๋Š” ๊ณผ์ •์ด ์ค„์–ด๋“ ๋‹ค.

๊ฐ€๋ณ€ ์ธ์ž์™€ ์˜ค๋ฒ„๋กœ๋”ฉ

  • ๊ฐ€๋ณ€ ์ธ์ž : ๋งค๊ฐœ๋ณ€์ˆ˜ ์ œ์ผ ๋งˆ์ง€๋ง‰์— ํƒ€์ž…... ๋ณ€์ˆ˜๋ช…์œผ๋กœ ์„ ์–ธ
  • ๊ฐ€๋ณ€ ์ธ์ž๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐฐ์—ด์„ ์‚ฌ์šฉ
  • ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๋ฐฐ์—ด์ผ ์‹œ ๋ฐ˜๋“œ์‹œ ์ธ์ž๊ฐ€ ํ•„์š”ํ•จ์œผ๋กœ null์ด๋‚˜ 0์ธ ๋ฐฐ์—ด์„ ์ธ์ž๋กœ ์ง€์ •ํ•ด ์ค˜์•ผ ํ•˜์ง€๋งŒ ๊ฐ€๋ณ€ ์ธ์ž๋Š” ๊ทธ๋Ÿฐ ๋ถˆํŽธํ•จ์ด ์—†์Œ
  • ๊ฐ€๋ณ€ ์ธ์ž๋ฅผ ์„ ์–ธํ•œ ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ ์‹œ ์ธ์ž๋งŒ์œผ๋กœ ๊ตฌ๋ณ„๋˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์‰ฝ๊ฒŒ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ๊ฐ€๋ณ€ ์ธ์ž๋ฅผ ์‚ฌ์šฉํ•œ ๋ฉ”์„œ๋“œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒŒ ์ข‹์Œ

์ƒ์„ฑ์ž

์ƒ์„ฑ์ž๋ž€?

  • ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™” ๋ฉ”์„œ๋“œ
  • ๋ฉ”์„œ๋“œ์™€ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ์ด๋‚˜ ๋ฆฌํ„ด ๊ฐ’์ด ์—†๋‹ค. (void๋ฅผ ๋ช…์‹œ X)
  • ์ƒ์„ฑ์ž์˜ ์ด๋ฆ„์€ ํด๋ž˜์Šค์™€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.
  • ์ƒ์„ฑ์ž๋„ ์˜ค๋ฒ„๋กœ๋”ฉ์ด ๊ฐ€๋Šฅ
    • ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์˜ ์—ฌ๋Ÿฌ ์ƒ์„ฑ์ž ์กด์žฌ ๊ฐ€๋Šฅ
  • ์—ฐ์‚ฐ์ž new๊ฐ€ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ, ์ƒ์„ฑ์ž๊ฐ€ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹˜
  • ์ƒ์„ฑ ๊ณผ์ •
    • ์—ฐ์‚ฐ์ž new์— ์˜ํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ(heap)์— ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
    • ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋˜์–ด ์ˆ˜ํ–‰
    • ์—ฐ์‚ฐ์ž new์˜ ๊ฒฐ๊ณผ๋กœ ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค์˜ ์ฃผ์†Œ๊ฐ€ ๋ฐ˜ํ™˜

๊ธฐ๋ณธ ์ƒ์„ฑ์ž

  • ํด๋ž˜์Šค๋Š” ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ƒ์„ฑ์ž๊ฐ€ ์ •์˜๋˜์–ด์•ผ ํ•จ
  • ํด๋ž˜์Šค์— ์ƒ์„ฑ์ž๊ฐ€ ํ•˜๋‚˜๋„ ์ •์˜๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์ถ”๊ฐ€ ํ›„ ์ปดํŒŒ์ผ
    • ํ•˜๋‚˜๋ผ๋„ ์ƒ์„ฑ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ X
  • ํด๋ž˜์Šค์ด๋ฆ„() {}

๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ์ƒ์„ฑ์ž

  • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜์—ฌ ํ˜ธ์ถœ ์‹œ ๊ฐ’์„ ๋„˜๊ฒจ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ (์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™” ์ž‘์—…)
  • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ–๋Š” ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐ&์ง๊ด€์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ

์ƒ์„ฑ์ž์—์„œ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž ํ˜ธ์ถœํ•˜๊ธฐ - this(), this

  • ์ƒ์„ฑ์ž ๊ฐ„์— ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•œ ์กฐ๊ฑด
    • ์ƒ์„ฑ์ž์˜ ์ด๋ฆ„์œผ๋กœ ํด๋ž˜์Šค ์ด๋ฆ„ ๋Œ€์‹  this๋ฅผ ์‚ฌ์šฉ
    • ํ•œ ์ƒ์„ฑ์ž์—์„œ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์ฒซ ์ค„์—์„œ๋งŒ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅ
  • ์ƒ์„ฑ์ž ์ดˆ๊ธฐํ™” ์ž‘์—… ๋„์ค‘ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž ํ˜ธ์ถœ ์‹œ ํ˜ธ์ถœ๋œ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž ๋‚ด์—์„œ๋„ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋“ค์˜ ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•  ๊ฒƒ์ด๋ฏ€๋กœ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ด์ „์˜ ์ž‘์—…์ด ๋ฌด์˜๋ฏธํ•ด์ง
    • ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ฒซ ์ค„์—์„œ๋งŒ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœ
    • this(), this(๋งค๊ฐœ๋ณ€์ˆ˜) ...
  • ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์˜ ์ด๋ฆ„๊ณผ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ด๋ฆ„์ด ๊ฐ™์„ ๊ฒฝ์šฐ์—” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์•ž์— this๋ฅผ ์‚ฌ์šฉ
    • this๋Š” ์ฐธ์กฐ ๋ณ€์ˆ˜๋กœ ์ธ์Šคํ„ด์Šค ์ž์‹ ์„ ๊ฐ€๋ฆฌํ‚ด
    • this๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„๋ฟ (static ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•จ์œผ๋กœ)
    • ์ƒ์„ฑ์ž๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ์—๋Š” ์ž์‹ ์ด ๊ด€๋ จ๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฐธ์กฐ ๋ณ€์ˆ˜ 'this'๊ฐ€ ์ง€์—ญ๋ณ€์ˆ˜๋กœ ์ˆจ๊ฒจ์ง„ ์ฑ„๋กœ ์กด์žฌ

์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•œ ์ธ์Šคํ„ด์Šค์˜ ๋ณต์‚ฌ

  • ์ƒ์„ฑ์ž์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ๋„˜๊ธฐ๊ณ  ์ฐธ์กฐ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ธ์Šคํ„ด์Šค์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋“ค์˜ ๊ฐ’์„ ์ž์‹ ์œผ๋กœ ๋ณต์‚ฌ
  • ์„œ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์กด์žฌํ•˜๋Š” ๋ณ„๋„์˜ ์ธ์Šคํ„ด์Šค์ด๋ฏ€๋กœ ์„œ๋กœ์˜ ๊ฐ’ ๋ณ€๊ฒฝ์€ ์˜ํ–ฅ์ด ์—†์Œ

๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™”

๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™”

  • ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” ์ด‰ํ™” ํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ ๋ณ€์ˆ˜์˜ ์ž๋ฃŒํ˜•์— ๋งž๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”
    • ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ = ํด๋ž˜์Šค ๋ณ€์ˆ˜ or ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
  • ์ง€์—ญ๋ณ€์ˆ˜๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ ์ดˆ๊ธฐํ™”ํ•  ๊ฒƒ
  • ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ•
    • ๋ช…์‹œ์  ์ดˆ๊ธฐํ™”
    • ์ƒ์„ฑ์ž
    • ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ (์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ, ํด๋ž˜์Šค ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ)

๋ช…์‹œ์  ์ดˆ๊ธฐํ™”

  • ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ
  • ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๋ฉด์„œ๋„ ๊ฐ„๋‹จ

์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ

  • ํด๋ž˜์Šค ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ
    • ํด๋ž˜์Šค ๋ณ€์ˆ˜์˜ ๋ณต์žกํ•œ ์ดˆ๊ธฐํ™”์— ์‚ฌ์šฉ
    • ์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ ์•ž์— static์„ ๋ง๋ถ™์ด๋ฉด ๋จ
    • ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ฒ˜์Œ ๋กœ๋”ฉ๋  ๋•Œ ํ•œ ๋ฒˆ๋งŒ ์ˆ˜ํ–‰
  • ์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ
    • ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ๋ณต์žกํ•œ ์ดˆ๊ธฐํ™”์— ์‚ฌ์šฉ
    • ํด๋ž˜์Šค ๋‚ด์— ๋ธ”๋Ÿญ์„ ๋งŒ๋“ค๊ณ  ์ฝ”๋“œ ์ž‘์„ฑ
    • ์ƒ์„ฑ์ž์™€ ๊ฐ™์ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ
    • ์ƒ์„ฑ์ž์—์„œ ๊ณตํ†ต์œผ๋กœ ์ˆ˜ํ–‰๋ผ์•ผ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ๋Š”๋ฐ ์‚ฌ์šฉ

๋ฉค๋ฒ„ ๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™” ์‹œ๊ธฐ์™€ ์ˆœ์„œ

  • ํด๋ž˜์Šค ๋ณ€์ˆ˜
    • ์ดˆ๊ธฐํ™” ์‹œ์  : ํด๋ž˜์Šค๊ฐ€ ์ฒ˜์Œ ๋กœ๋”ฉ๋  ๋•Œ ๋‹จ ํ•œ ๋ฒˆ ์ดˆ๊ธฐํ™”
    • ์ดˆ๊ธฐํ™” ์ˆœ์„œ : ๊ธฐ๋ณธ๊ฐ’ -> ๋ช…์‹œ์  ์ดˆ๊ธฐํ™” -> ํด๋ž˜์Šค ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ
  • ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
    • ์ดˆ๊ธฐํ™” ์‹œ์  : ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ๊ฐ ์ธ์Šคํ„ด์Šค ๋ณ„๋กœ ์ดˆ๊ธฐํ™”
    • ์ดˆ๊ธฐํ™” ์ˆœ์„œ : ๊ธฐ๋ณธ๊ฐ’ -> ๋ช…์‹œ์  ์ดˆ๊ธฐํ™” -> ์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™” -> ์ƒ์„ฑ์ž
  • ์—ฌ๊ธฐ์„œ ๊ธฐ๋ณธ๊ฐ’์€ ๊ฐ ์ž๋ฃŒํ˜•์— ๋งž๋Š” ๊ธฐ๋ณธ๊ฐ’
  • ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋Š” ์ƒ์„ฑ์ž๋กœ ์ธํ•œ ํ• ๋‹น์ด ๋ช…์‹œ์  ์ดˆ๊ธฐํ™”๋กœ ์ธํ•œ ํ• ๋‹น ๋’ค ์ˆœ์„œ