๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐ŸŒˆ Chapter 5: ์†”์งํžˆ ๋งํ•˜์ž๋ฉด

์–ด๋–ค ์ž‘์€ ๋‹จ๊ณ„๋ฅผ ๋ฐŸ์œผ๋ฉด ์ดˆ๋ก ๋ง‰๋Œ€์— ์ด๋ฅผ ์ˆ˜ ์žˆ์„๊นŒ? Dollar ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•ด์„œ Dollar๋ฅผ Franc์œผ๋กœ ๋ฐ”๊พธ๋ฉด ์–ด๋–จ๊นŒ.

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

  1. ํ…Œ์ŠคํŠธ ์ž‘์„ฑ.
  2. ์ปดํŒŒ์ผ๋˜๊ฒŒ ํ•˜๊ธฐ.
  3. ์‹คํŒจํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰.
  4. ์‹คํ–‰ํ•˜๊ฒŒ ๋งŒ๋“ฆ.
  5. ์ค‘๋ณต ์ œ๊ฑฐ.

๊ฐ ๋‹จ๊ณ„์—๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ชฉ์ ์ด ์žˆ๋‹ค. ๋‹ค๋ฅธ ์Šคํƒ€์ผ์˜ ํ•ด๋ฒ•, ๋‹ค๋ฅธ ๋ฏธ์  ์‹œ๊ฐ„์„ ํ•„์š”๋กœ ํ•œ๋‹ค. ์ฒ˜์Œ ๋„ค ๋‹จ๊ณ„๋Š” ๋นจ๋ฆฌ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ƒˆ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜๋”๋ผ๋„ ์ž˜ ์•Œ๊ณ  ์žˆ๋Š” ์ƒํƒœ์— ์ด๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

์ฃผ๊ธฐ์˜ ๋‹ค์„ฏ ๋ฒˆ์งธ ๋‹จ๊ณ„ ์—†์ด๋Š” ์•ž์˜ ๋„ค ๋‹จ๊ณ„๋„ ์ œ๋Œ€๋กœ ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ ์ ˆํ•œ ์‹œ๊ธฐ์— ์ ์ ˆํ•œ ์„ค๊ณ„๋ฅผ. ๋Œ์•„๊ฐ€๊ฒŒ ๋งŒ๋“ค๊ณ , ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋งŒ๋“ค์–ด๋ผ.
์ฝ”๋“œ์—์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์ž์‹ ์˜ ์ฝ”๋“œ๋ฅผ ํŒŒํŠธ๋„ˆ๋ฅผ ์ œ์™ธํ•œ ์–ด๋Š ๋ˆ„๊ตฌ์—๊ฒŒ๋„ ๋ณด์—ฌ์ฃผ๋ ค๊ณ  ํ•˜์ง€ ์•Š์„ ๊ฑฐ๋ผ๋Š” ํ™•์‹ ์ด ๋“ ๋‹ค.

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()๋ฅผ ์ผ๋ฐ˜ํ™”ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์ž.

๊ฒ€ํ† ํ•ด๋ณด๋ฉด ์šฐ๋ฆฌ๋Š”

  • ํฐ ํ…Œ์ŠคํŠธ๋ฅผ ๊ณต๋žตํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์ง„์ „์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ž๊ทธ๋งˆํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.
  • ๋ป”๋ป”์Šค๋Ÿฝ๊ฒŒ๋„ ์ค‘๋ณต์„ ๋งŒ๋“ค๊ณ  ์กฐ๊ธˆ ๊ณ ์ณ์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.
  • ์„ค์‚ฌ๊ฐ€์ƒ์œผ๋กœ ๋ชจ๋ธ ์ฝ”๋“œ๊นŒ์ง€ ๋„๋งค๊ธˆ์œผ๋กœ ๋ณต์‚ฌํ•˜๊ณ  ์ˆ˜์ •ํ•ด์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ๋‹ค.
  • ์ค‘๋ณต์ด ์‚ฌ๋ผ์ง€๊ธฐ ์ „์—๋Š” ์ง‘์— ๊ฐ€์ง€ ์•Š๊ฒ ๋‹ค๊ณ  ์•ฝ์†ํ–ˆ๋‹ค.