๐ Chapter 5: ์์งํ ๋งํ์ ๋ฉด
์ด๋ค ์์ ๋จ๊ณ๋ฅผ ๋ฐ์ผ๋ฉด ์ด๋ก ๋ง๋์ ์ด๋ฅผ ์ ์์๊น? Dollar
์ฝ๋๋ฅผ ๋ณต์ฌํด์ Dollar
๋ฅผ Franc
์ผ๋ก ๋ฐ๊พธ๋ฉด ์ด๋จ๊น.
์ ๊น. ์ฌ๋ฌ๋ถ ์ค์ ์ฌ๋ฏธ์ ์ทจํฅ์ ๊ฐ์ง ์ผ๋ถ๊ฐ ๋น์์ผ๋ฉฐ ์ผ์ ํ๋ ์๋ฆฌ๊ฐ ๋ค๋ฆฐ๋ค. ๋ณต์ฌ์ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํตํ ์ฌ์ฌ์ฉ? ์ถ์ํ์ ์ข
์ธ? ๊นจ๋ํ ์ค๊ณ์ ํฌ๋ฌ?
ํฅ๋ถํ๋ค๋ฉด, ๊ธฐ๋ถ์ ์ ํํ๋ ์จ์ ์ฌ์ด๋ผ. ์ฐ๋ฆฌ ์ฃผ๊ธฐ์๋ ์๋ก ๋ค๋ฅธ ๋จ๊ณ๋ค์ด ์๋ค๋ ๊ฒ์ ๊ธฐ์ตํ๋ผ
- ํ ์คํธ ์์ฑ.
- ์ปดํ์ผ๋๊ฒ ํ๊ธฐ.
- ์คํจํ๋์ง ํ์ธํ๊ธฐ ์ํด ์คํ.
- ์คํํ๊ฒ ๋ง๋ฆ.
- ์ค๋ณต ์ ๊ฑฐ.
๊ฐ ๋จ๊ณ์๋ ์๋ก ๋ค๋ฅธ ๋ชฉ์ ์ด ์๋ค. ๋ค๋ฅธ ์คํ์ผ์ ํด๋ฒ, ๋ค๋ฅธ ๋ฏธ์ ์๊ฐ์ ํ์๋ก ํ๋ค. ์ฒ์ ๋ค ๋จ๊ณ๋ ๋นจ๋ฆฌ ์งํํด์ผ ํ๋ค. ๊ทธ๋ฌ๋ฉด ์ ๊ธฐ๋ฅ์ด ํฌํจ๋๋๋ผ๋ ์ ์๊ณ ์๋ ์ํ์ ์ด๋ฅผ ์ ์๋ค.
์ฃผ๊ธฐ์ ๋ค์ฏ ๋ฒ์งธ ๋จ๊ณ ์์ด๋ ์์ ๋ค ๋จ๊ณ๋ ์ ๋๋ก ๋์ง ์๋๋ค. ์ ์ ํ ์๊ธฐ์ ์ ์ ํ ์ค๊ณ๋ฅผ. ๋์๊ฐ๊ฒ ๋ง๋ค๊ณ , ์ฌ๋ฐ๋ฅด๊ฒ ๋ง๋ค์ด๋ผ.
์ฝ๋์์ ์ค๋ณต์ ์ ๊ฑฐํ๊ธฐ ์ ๊น์ง๋ ์์ ์ ์ฝ๋๋ฅผ ํํธ๋๋ฅผ ์ ์ธํ ์ด๋ ๋๊ตฌ์๊ฒ๋ ๋ณด์ฌ์ฃผ๋ ค๊ณ ํ์ง ์์ ๊ฑฐ๋ผ๋ ํ์ ์ด ๋ ๋ค.
class Franc {
private int amount;
Franc(int amount) {
this.amount = amount;
}
Franc times(int multiplier) {
return new Franc(amount * multiplier);
}
public boolean equals(Object object) {
Franc franc = (Franc) object;
return amount == franc.amount;
}
}
์ฝ๋๋ฅผ ์คํ์ํค๊ธฐ๊น์ง์ ๋จ๊ณ๊ฐ ์งง์๊ธฐ ๋๋ฌธ์ "์ปดํ์ผ๋ ๊ฒ ํ๊ธฐ" ๋จ๊ณ๋ ๋์ด๊ฐ ์ ์์๋ค.
์ค๋ณต์ด ์์ฒญ๋๊ฒ ๋ง๊ธฐ ๋๋ฌธ์ ๋ค์ ํ
์คํธ๋ฅผ ์์ฑํ๊ธฐ ์ ์ ์ด๊ฒ๋ค์ ์ ๊ฑฐํด์ผ ํ๋ค. equals()
๋ฅผ ์ผ๋ฐํํ๋ ๊ฒ๋ถํฐ ์์ํ์.
๊ฒํ ํด๋ณด๋ฉด ์ฐ๋ฆฌ๋
- ํฐ ํ ์คํธ๋ฅผ ๊ณต๋ตํ ์ ์๋ค. ๊ทธ๋์ ์ง์ ์ ๋ํ๋ผ ์ ์๋ ์๊ทธ๋งํ ํ ์คํธ๋ฅผ ๋ง๋ค์๋ค.
- ๋ป๋ป์ค๋ฝ๊ฒ๋ ์ค๋ณต์ ๋ง๋ค๊ณ ์กฐ๊ธ ๊ณ ์ณ์ ํ ์คํธ๋ฅผ ์์ฑํ๋ค.
- ์ค์ฌ๊ฐ์์ผ๋ก ๋ชจ๋ธ ์ฝ๋๊น์ง ๋๋งค๊ธ์ผ๋ก ๋ณต์ฌํ๊ณ ์์ ํด์ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ค.
- ์ค๋ณต์ด ์ฌ๋ผ์ง๊ธฐ ์ ์๋ ์ง์ ๊ฐ์ง ์๊ฒ ๋ค๊ณ ์ฝ์ํ๋ค.