Java ๋ฉ์๋ ์ ์ ์์ ์์ฝ
์ด ์์์ Java์์ ๋ฉ์๋๋ฅผ ์ ์ํ๋ ๊ธฐ๋ณธ ๋ฌธ๋ฒ๋ถํฐ ๋ค์ํ ์์ , ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํต์ฌ ๊ฐ๋
์ธ ์บก์ํ๊น์ง ์น์ ํ๊ฒ ์ค๋ช
ํฉ๋๋ค. ๋ฉ์๋์ ๊ตฌ์ฑ ์์, ๋ค ๊ฐ์ง ๊ธฐ๋ณธ ํํ, ์ค์ต ์์ , ๊ทธ๋ฆฌ๊ณ ๊ฒํฐ/์ธํฐ ๋ฉ์๋ ํ์ฉ๋ฒ๊ณผ ์บก์ํ ๊ฐ๋
์ ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์์ด์.
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
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 ํ๋ก๊ทธ๋๋ฐ ์
๋ฌธ์์๊ฒ ๊ผญ ํ์ํ ๋ด์ฉ์ด๋ ๊ผญ ์ฐธ๊ณ ํด ๋ณด์ธ์!