Search

Java ๋ฉ”์†Œ๋“œ ์ •์˜

Java ๋ฉ”์†Œ๋“œ ์ •์˜ ์˜์ƒ ์š”์•ฝ

์ด ์˜์ƒ์€ Java์—์„œ ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๋ถ€ํ„ฐ ๋‹ค์–‘ํ•œ ์˜ˆ์ œ, ๊ทธ๋ฆฌ๊ณ  ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•ต์‹ฌ ๊ฐœ๋…์ธ ์บก์Аํ™”๊นŒ์ง€ ์นœ์ ˆํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์†Œ๋“œ์˜ ๊ตฌ์„ฑ ์š”์†Œ, ๋„ค ๊ฐ€์ง€ ๊ธฐ๋ณธ ํ˜•ํƒœ, ์‹ค์Šต ์˜ˆ์ œ, ๊ทธ๋ฆฌ๊ณ  ๊ฒŒํ„ฐ/์„ธํ„ฐ ๋ฉ”์†Œ๋“œ ํ™œ์šฉ๋ฒ•๊ณผ ์บก์Аํ™” ๊ฐœ๋…์„ ์‰ฝ๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”.

๋ชฉ์ฐจ

1.
๋ฉ”์†Œ๋“œ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๊ณผ ๋„ค ๊ฐ€์ง€ ํ˜•ํƒœ [00:00:00]
2.
๋ฉ”์†Œ๋“œ ์‹ค์Šต: ๋ง์…ˆ, ๋บ„์…ˆ, ๊ณฑ์…ˆ, ๋‚˜๋ˆ—์…ˆ, ํ•ฉ๊ณ„, ํ‰๊ท  [00:02:51]
3.
๋ฉ”์ธ ๋ฉ”์†Œ๋“œ์—์„œ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ๋ฐ ์ถœ๋ ฅํ•˜๊ธฐ [00:39:12]
4.
printf ํ˜•์‹ ์ง€์ •์ž ์‚ฌ์šฉ๋ฒ• ๊ฐ„๋‹จ ์„ค๋ช… [00:51:43]
5.
ํด๋ž˜์Šค์™€ ์ƒ์„ฑ์ž, ๊ฒŒํ„ฐ/์„ธํ„ฐ ๋ฉ”์†Œ๋“œ ์ •์˜ [00:54:36]
6.
์บก์Аํ™”์™€ ์„ธํ„ฐ ๋ฉ”์†Œ๋“œ๋กœ ๋ฐ์ดํ„ฐ ์ œ์–ดํ•˜๊ธฐ [01:04:11]

1. ๋ฉ”์†Œ๋“œ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๊ณผ ๋„ค ๊ฐ€์ง€ ํ˜•ํƒœ [00:00:00]

Java ๋ฉ”์†Œ๋“œ๋Š” ํด๋ž˜์Šค ์•ˆ์—์„œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ ๋ธ”๋ก์ด์—์š”. ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•  ๋•Œ๋Š” ๋‹ค์Œ ์š”์†Œ๋“ค์ด ํ•„์š”ํ•ด์š”:
โ€ข
์ ‘๊ทผ ์ง€์ •์ž: ๋ฉ”์†Œ๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ์ •ํ•ด์š”. ์˜ˆ๋ฅผ ๋“ค์–ดย public(๋ชจ๋‘ ์ ‘๊ทผ ๊ฐ€๋Šฅ),ย private(ํด๋ž˜์Šค ๋‚ด๋ถ€๋งŒ),ย protected(๊ฐ™์€ ํŒจํ‚ค์ง€๋‚˜ ์ž์‹ ํด๋ž˜์Šค๋งŒ),ย default(๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด) ๋“ฑ์ด ์žˆ์–ด์š”.
โ€ข
๋ฆฌํ„ด ํƒ€์ž…: ๋ฉ”์†Œ๋“œ๊ฐ€ ๋Œ๋ ค์ฃผ๋Š” ๊ฐ’์˜ ํƒ€์ž…์ด์—์š”. ์˜ˆ๋ฅผ ๋“ค์–ดย int,ย double,ย Stringย ๋“ฑ์ด ์žˆ๊ณ , ๋ฐ˜ํ™˜๊ฐ’์ด ์—†์œผ๋ฉดย void๋ฅผ ์จ์š”.
โ€ข
๋ฉ”์†Œ๋“œ๋ช…: ๋ณดํ†ต ์นด๋ฉœ ์ผ€์ด์Šค(camelCase)๋กœ ์ด๋ฆ„์„ ์ง€์–ด์š”. ์˜ˆ:ย calculateSum()
โ€ข
๋งค๊ฐœ๋ณ€์ˆ˜: ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์‹œ ์ „๋‹ฌ๋ฐ›๋Š” ๊ฐ’๋“ค๋กœ, ํƒ€์ž…๊ณผ ์ˆœ์„œ, ๊ฐœ์ˆ˜๋ฅผ ๋งž์ถฐ์•ผ ํ•ด์š”.
๋ฉ”์†Œ๋“œ๋Š” ๋ฆฌํ„ด ํƒ€์ž…๊ณผ ๋งค๊ฐœ๋ณ€์ˆ˜ ์œ ๋ฌด์— ๋”ฐ๋ผ ๋„ค ๊ฐ€์ง€ ํ˜•ํƒœ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค:
1.
๋ฆฌํ„ด ํƒ€์ž… ์—†์Œ, ๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์Œ
2.
๋ฆฌํ„ด ํƒ€์ž… ์žˆ์Œ, ๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์Œ
3.
๋ฆฌํ„ด ํƒ€์ž… ์—†์Œ, ๋งค๊ฐœ๋ณ€์ˆ˜ ์žˆ์Œ
4.
๋ฆฌํ„ด ํƒ€์ž… ์žˆ์Œ, ๋งค๊ฐœ๋ณ€์ˆ˜ ์žˆ์Œ

2. ๋ฉ”์†Œ๋“œ ์‹ค์Šต: ๋ง์…ˆ, ๋บ„์…ˆ, ๊ณฑ์…ˆ, ๋‚˜๋ˆ—์…ˆ, ํ•ฉ๊ณ„, ํ‰๊ท  [00:02:51]

์‹ค์ œ ์ฝ”๋”ฉ ์‹ค์Šต์—์„œ๋Š”ย Calculatorย ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋‹ค์–‘ํ•œ ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•ด์š”.
โ€ข
๋ง์…ˆ(plus),ย ๋บ„์…ˆ(minus): ์ •์ˆ˜ํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜ ๋‘ ๊ฐœ๋ฅผ ๋ฐ›์•„ ๊ณ„์‚ฐ ํ›„ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
โ€ข
๊ณฑ์…ˆ(multiple),ย ๋‚˜๋ˆ—์…ˆ(divide): ์‹ค์ˆ˜ํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜ ๋‘ ๊ฐœ๋ฅผ ๋ฐ›์•„ ๊ณ„์‚ฐ
โ€ข
๋‚˜๋จธ์ง€(remain): ์ •์ˆ˜ํ˜• ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ
โ€ข
ํ•ฉ๊ณ„(sum): ์ •์ˆ˜ ๋ฐฐ์—ด์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„ ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ๋ชจ๋‘ ๋”ํ•ด ๋ฐ˜ํ™˜
โ€ข
ํ‰๊ท (average): ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•œ ํ›„ ๋ฐฐ์—ด ๊ธธ์ด๋กœ ๋‚˜๋ˆ„์–ด ์‹ค์ˆ˜ํ˜• ํ‰๊ท  ๋ฐ˜ํ™˜
์˜ˆ๋ฅผ ๋“ค์–ด, ํ•ฉ๊ณ„ ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์ ์ˆ˜๋ฅผ ๋”ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ, ํ‰๊ท  ๋ฉ”์†Œ๋“œ๋Š” ํ•ฉ๊ณ„ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์—ด ๊ธธ์ด๋กœ ๋‚˜๋ˆ„๋Š” ์‹์œผ๋กœ ๊ตฌํ˜„ํ•ด์š”.

3. ๋ฉ”์ธ ๋ฉ”์†Œ๋“œ์—์„œ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ๋ฐ ์ถœ๋ ฅํ•˜๊ธฐ [00:39:12]

CalculatorTestย ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ดย mainย ๋ฉ”์†Œ๋“œ์—์„œย Calculatorย ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์œ„์—์„œ ๋งŒ๋“  ๋ฉ”์†Œ๋“œ๋“ค์„ ํ˜ธ์ถœํ•ด ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•ด์š”.
โ€ข
์ •์ˆ˜์™€ ์‹ค์ˆ˜ ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›์•„ ๋ง์…ˆ, ๋บ„์…ˆ, ๊ณฑ์…ˆ, ๋‚˜๋ˆ—์…ˆ, ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ ์‹คํ–‰
โ€ข
๋ฐฐ์—ด์„ ์ดˆ๊ธฐํ™”ํ•ด ํ•ฉ๊ณ„์™€ ํ‰๊ท  ๊ณ„์‚ฐ
โ€ข
๊ฒฐ๊ณผ๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•ด ์‹ค์ œ ๋™์ž‘์„ ํ™•์ธ

4. printf ํ˜•์‹ ์ง€์ •์ž ์‚ฌ์šฉ๋ฒ• ๊ฐ„๋‹จ ์„ค๋ช… [00:51:43]

printfย ๋ฉ”์†Œ๋“œ๋Š” ์ถœ๋ ฅ ํ˜•์‹์„ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•ด์š”. ์ฃผ์š” ํฌ์ธํŠธ๋Š”:
โ€ข
%d: ์ •์ˆ˜ ์ถœ๋ ฅ
โ€ข
%f: ์‹ค์ˆ˜ ์ถœ๋ ฅ (์†Œ์ˆ˜์  ์ž๋ฆฌ์ˆ˜ ์ง€์ • ๊ฐ€๋Šฅ)
โ€ข
%s: ๋ฌธ์ž์—ด ์ถœ๋ ฅ
โ€ข
์ˆซ์ž๋ฅผ ์•ž์— ๋ถ™์—ฌ ์ถœ๋ ฅ ์นธ ์ˆ˜์™€ ์ •๋ ฌ ๋ฐฉํ–ฅ ์ง€์ • ๊ฐ€๋Šฅ (์˜ˆ:ย %5d๋Š” 5์นธ ์˜ค๋ฅธ์ชฝ ์ •๋ ฌ,ย %-5d๋Š” ์™ผ์ชฝ ์ •๋ ฌ)
โ€ข
์†Œ์ˆ˜์  ์ž๋ฆฌ์ˆ˜ ์ง€์ •์€ย %.2f์ฒ˜๋Ÿผ ์ (.) ๋’ค์— ์ˆซ์ž๋ฅผ ์จ์š” (์†Œ์ˆ˜์  ๋‘˜์งธ ์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅ)
์˜ˆ๋ฅผ ๋“ค์–ด,ย printf("%5.2f", 3.14159)๋Š” ์†Œ์ˆ˜์  ๋‘˜์งธ ์ž๋ฆฌ๊นŒ์ง€ ํ‘œ์‹œํ•˜๋ฉฐ 5์นธ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•ด ์˜ค๋ฅธ์ชฝ ์ •๋ ฌํ•ด ์ถœ๋ ฅํ•ด์š”.

5. ํด๋ž˜์Šค์™€ ์ƒ์„ฑ์ž, ๊ฒŒํ„ฐ/์„ธํ„ฐ ๋ฉ”์†Œ๋“œ ์ •์˜ [00:54:36]

Carย ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ž๋™์ฐจ ๋ชจ๋ธ๋ช…๊ณผ ์†๋„๋ฅผ ๋ณ€์ˆ˜๋กœ ์ •์˜ํ•˜๊ณ , ์ƒ์„ฑ์ž๋ฅผ ์„ธ ๊ฐ€์ง€ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์š”:
โ€ข
๊ธฐ๋ณธ ์ƒ์„ฑ์ž (๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์Œ)
โ€ข
๋ชจ๋ธ๋ช…๋งŒ ๋ฐ›๋Š” ์ƒ์„ฑ์ž
โ€ข
๋ชจ๋ธ๋ช…๊ณผ ์†๋„ ๋ชจ๋‘ ๋ฐ›๋Š” ์ƒ์„ฑ์ž
๊ทธ๋ฆฌ๊ณ  **๊ฒŒํ„ฐ(getter)**์™€ย ์„ธํ„ฐ(setter)ย ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋ณ€์ˆ˜ ๊ฐ’์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์š”.
โ€ข
๊ฒŒํ„ฐ: ๋ณ€์ˆ˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฉ”์†Œ๋“œ (์˜ˆ:ย getModel())
โ€ข
์„ธํ„ฐ: ๋ณ€์ˆ˜ ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๋ฉ”์†Œ๋“œ (์˜ˆ:ย setSpeed(int speed))
์ด ๋ฉ”์†Œ๋“œ๋“ค์€ ๋ณ€์ˆ˜์— ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ  ๊ฐ„์ ‘์ ์œผ๋กœ ๊ฐ’์„ ๋‹ค๋ฃจ๊ฒŒ ํ•ด์ค˜์„œ ์•ˆ์ „์„ฑ์„ ๋†’์—ฌ์ค˜์š”.

6. ์บก์Аํ™”์™€ ์„ธํ„ฐ ๋ฉ”์†Œ๋“œ๋กœ ๋ฐ์ดํ„ฐ ์ œ์–ดํ•˜๊ธฐ [01:04:11]

Carย ํด๋ž˜์Šค์—์„œ ์†๋„ ๋ณ€์ˆ˜์—ย privateย ์ ‘๊ทผ ์ง€์ •์ž๋ฅผ ๋ถ™์ด๋ฉด ์™ธ๋ถ€์—์„œ ์ง์ ‘ ์ ‘๊ทผ ๋ถˆ๊ฐ€ํ•ด์ ธ์š”. ๋Œ€์‹  ์„ธํ„ฐ ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์†๋„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ์†๋„ ๊ฐ’์ด ์Œ์ˆ˜๊ฑฐ๋‚˜ ๋„ˆ๋ฌด ํฌ๋ฉด ์ œํ•œํ•˜๋Š” ๋กœ์ง์„ ๋„ฃ์–ด ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์š”.
์˜ˆ๋ฅผ ๋“ค์–ด:
โ€ข
์†๋„๊ฐ€ ์Œ์ˆ˜๋ฉด 0์œผ๋กœ ๊ณ ์ •
โ€ข
์†๋„๊ฐ€ 300์„ ๋„˜์œผ๋ฉด 300์œผ๋กœ ์ œํ•œ
โ€ข
๊ทธ ์™ธ ์ •์ƒ ๋ฒ”์œ„ ๋‚ด ๊ฐ’๋งŒ ์„ค์ •
์ด๋Ÿฐ ๋ฐฉ์‹์ด ๋ฐ”๋กœย ์บก์Аํ™”(encapsulation)ย ๊ฐœ๋…์œผ๋กœ, ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ์™€ ์™ธ๋ถ€์™€์˜ ์•ˆ์ „ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์˜๋ฏธํ•ด์š”.

๋งˆ๋ฌด๋ฆฌ ์š”์•ฝ

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