๐ JAVA/์ดํํฐ๋ธ ์๋ฐ

์ธํฐํ์ด์ค๋ ํ์ ์ ์ ์ํ๋ ์ฉ๋๋ก๋ง ์ฌ์ฉํ๋ผ - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 22)]
1. ์ธํฐํ์ด์ค์ ์ญํ ๐ฃ ์ธํฐํ์ด์ค๋ ์์ ์ ๊ตฌํํ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ ์ ์๋ ํ์ ์ญํ ์ ํ๋ค. ํด๋์ค๊ฐ ์ด๋ค ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค๋ ๊ฒ์ ์์ ์ ์ธ์คํด์ค๋ก ๋ฌด์์ ํ ์ ์๋์ง๋ฅผ ํด๋ผ์ด์ธํธ์ ์๊ธฐํด ์ฃผ๋ ๊ฒ์ด๋ค. ์ธํฐํ์ด์ค๋ ์ค์ง ์ด ์ฉ๋๋ก๋ง ์ฌ์ฉํด์ผ ํ๋ค. (๋ฐ์์ ์ดํด๋ณผ ๊ฒ์ด์ง๋ง ์์ ๊ณต๊ฐ์ฉ ์๋จ์ผ๋ก ์ฌ์ฉํ์ง ๋ง์์ผ ํ๋ค.) 2. ์์ ์ธํฐํ์ด์ค ์ํฐํจํด ๐ฅ ์์์ ๋งํ ์ธํฐํ์ด์ค์ ์ญํ ์ ๋ง์ง ์๋ ์๋ก ์์ ์ธํฐํ์ด์ค๋ผ๋ ๊ฒ์ด ์๋ค. ์์ ์ธํฐํ์ด์ค๋ ๋ฉ์๋ ์์ด, ์์๋ฅผ ๋ปํ๋ static final ํ๋๋ก๋ง ๊ฐ๋ ์ฐฌ ์ธํฐํ์ด์ค๋ฅผ ๋งํ๋ค. public interface PhysicalConstants { // ์๋ณด๊ฐ๋๋ก ์ (1/๋ชฐ) static final double AVOGAD..

์ธํฐํ์ด์ค๋ ๊ตฌํํ๋ ์ชฝ์ ์๊ฐํด ์ค๊ณํ๋ผ - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 21)]
1. ๊ฐ๋ ๐ป ๋ํดํธ ๋ฉ์๋๋ฅผ ์ ์ธํ๋ฉด, ๊ทธ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํ ๋ํดํธ ๋ฉ์๋๋ฅผ ์ฌ์ ์ํ์ง ์์ ๋ชจ๋ ํด๋์ค์์ ๋ํดํธ ๊ตฌํ์ด ์ฐ์ด๊ฒ ๋๋ค. ๊ธฐ์กด ์ธํฐํ์ด์ค์ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ๋ ๊ธธ์ด ์ด๋ ธ์ง๋ง ๋ชจ๋ ๊ธฐ์กด ๊ตฌํ์ฒด๋ค๊ณผ ๋งค๋๋ฝ๊ฒ ์ฐ๋๋๋ฆฌ๋ผ๋ ๋ณด์ฅ์ ์๋ค. ์๋ฐ 7๊น์ง์ ์ธ์์์๋ ๋ชจ๋ ํด๋์ค๊ฐ "ํ์ฌ์ ์ธํฐํ์ด์ค์ ์๋ก์ด ๋ฉ์๋๊ฐ ์ถ๊ฐ๋ ์ผ์ ์์ํ ์๋ค"๋ผ๊ณ ๊ฐ์ ํ๊ณ ์ฅ์ฑ๋์ผ๋ ๋ง์ด๋ค. ๋ํดํธ ๋ฉ์๋๋ ๊ตฌํ ํด๋์ค์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅธ ์ฑ ํฉ์ ์์ด ๋ฌด์์ฑ '์ฝ์ '๋ ๋ฟ์ด๋ค. ์ด๋ฒ ๊ธ์์๋ ์ด๋ฐ ๊ฒฝ์ฐ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ์ํฉ๋ค์ ์ดํด๋ณด๊ณ ๊ทธ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์์๋ณด์. 2. [๋ฌธ์ ์ํฉ 1] ์๊ฐํ ์ ์๋ ๋ชจ๋ ์ํฉ์์ ๋ถ๋ณ์์ ํด์น์ง ์๋ ๋ํดํธ ๋ฉ์๋๋ฅผ ์์ฑํ๊ธฐ๋ ์ด๋ ต๋ค. ๐ค ์๋ฐ 8์ Collcti..

์ถ์ ํด๋์ค๋ณด๋ค๋ ์ธํฐํ์ด์ค๋ฅผ ์ฐ์ ํ๋ผ(์ถ์ ๊ณจ๊ฒฉ ๊ตฌํ(Skeletal Implementation) ํด๋์ค)(2) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 20)]
์ด์ ๊ธ์ ํตํด ์ธํฐํ์ด์ค์ ์ฅ์ ๋ค์ ์์๋ณด์๋ค. ์ด๋ฒ ๊ธ์์๋ ์ธํฐํ์ด์ค์ ๊ณจ๊ฒฉ ๊ตฌํ(skeletal implementation) ํด๋์ค๋ฅผ ํจ๊ป ์ ๊ณตํ์ฌ ์ธํฐํ์ด์ค์ ์ถ์ ํด๋์ค์ ์ฅ์ ์ ๋ชจ๋ ์ทจํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. ์ธํฐํ์ด์ค์ ์ถ์ ํด๋์ค๋ฅผ ๊ฐ์ด ์ฌ์ฉํ์ ๋์ ์ฅ์ ์ '์ธํฐํ์ด์ค์์ ๊ตฌํํด ์ค ์ ์๋ ๊ฒ๋ค์ ๋ํดํธ ๋ฉ์๋๋ก ๊ตฌํํ๊ณ , ๊ตฌํํด ์ค ์ ์๋ ๊ฒ๋ค์ ์ถ์ ๊ณจ๊ฒฉ ํด๋์ค์์ ๋๋จธ์ง ๋ฉ์๋๋ฅผ ๊ตฌํํ๋ค.'๋ ๊ฒ์ด๋ค. ์ถ์ ๊ณจ๊ฒฉ ๊ตฌํ ํด๋์ค๋ฅผ ํ์ฉํ์์ ๋ ์ป์ ์ ์๋ 2๊ฐ์ง์ ์ฅ์ ์ ๋ํด์ ์์ธํ ์์๋ณด์. (๋ช ์นญ๊ณผ ๊ด๋ จํ์ฌ, ์ถ์ ๊ณจ๊ฒฉ ํด๋์ค๋ผ๊ณ ๋ถ๋ฅด๋ ์ด์ ๋ ์ผ๋ถ๋ง ๊ตฌํํ๊ณ ์ผ๋ถ๋ ๊ตฌํํ์ง ์์๋ ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ธํฐํ์ด์ค๊ฐ ๋ผ๋ ์ญํ ์ ํ๋ค๊ณ ์๊ฐํ๋ฉด ์ฌ์ธ ๊ฑฐ ๊ฐ๋ค.) ์ฅ์ 1. ๋จ์ํ..

์ถ์ ํด๋์ค๋ณด๋ค๋ ์ธํฐํ์ด์ค๋ฅผ ์ฐ์ ํ๋ผ(์ธํฐํ์ด์ค์ ์ฅ์ )(1) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 20)]
์๋ฐ๊ฐ ์ ๊ณตํ๋ ๋ค์ค ๊ตฌํ ๋ฉ์ปค๋์ฆ์ '์ธํฐํ์ด์ค์ ์ถ์ ํด๋์ค' 2๊ฐ์ง๊ฐ ์๋ค. ์๋ฐ 8๋ถํฐ ์ธํฐํ์ด์ค๋ Default Method๋ฅผ ์ ๊ณตํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ ๋ฉ์ปค๋์ฆ ๋ชจ๋ ์ธ์คํด์ค ๋ฉ์๋๋ฅผ ๊ตฌํ ํํ๋ก ์ ๊ณตํ ์ ์๋ค. ๋์ ๊ฐ์ฅ ํฐ ์ฐจ์ด๋ ์ถ์ ํด๋์ค๊ฐ ์ ์ํ ํ์ ์ ๊ตฌํํ๋ ํด๋์ค๋ ๋ฐ๋์ ์ถ์ ํด๋์ค์ ํ์ ํด๋์ค๊ฐ ๋์ด์ผ ํ๋ค๋ ์ ์ด๋ค. ์๋ฐ๋ ๋จ์ผ ์์๋ง ์ง์ํ๋, ์ถ์ ํด๋์ค ๋ฐฉ์์ ์๋ก์ด ํ์ ์ ์ ์ํ๋ ๋ฐ ์ปค๋ค๋ ์ ์ฝ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค. ๋ฐ๋ฉด ์ธํฐํ์ด์ค๊ฐ ์ ์ธํ ๋ฉ์๋๋ฅผ ๋ชจ๋ ์ ์ํ๊ณ ๊ทธ ์ผ๋ฐ ๊ท์ฝ์ ์ ์งํจ ํด๋์ค๋ผ๋ฉด ๋ค๋ฅธ ์ด๋ค ํด๋์ค๋ฅผ ์์ํ๋ ๊ฐ์ ํ์ ์ผ๋ก ์ทจ๊ธ๋๋ค. ์ฌ๊ธฐ๊น์ง๊ฐ ์ถ์ํด๋์ค์ ์ธํฐํ์ด์ค์ ๋ํ ๊ฐ๋จํ ์ค๋ช ์ด๋ค. ์ด๋ฒ ๊ธ์์ ์ธํฐํ์ด์ค์ 5๊ฐ์ง ์ฅ์ ๋ค์ ์ดํด๋ณด๋ฉด์ ..

์์์ ๊ณ ๋ คํด ์ค๊ณํ๊ณ ๋ฌธ์ํํ๋ผ. ๊ทธ๋ฌ์ง ์์๋ค๋ฉด ์์์ ๊ธ์งํ๋ผ - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 19)]
์์์ ๊ณ ๋ คํด ์ค๊ณํ๊ณ ๋ฌธ์ํํ๋ ๋ฐฉ๋ฒ๋ค์ ์์๋ณด์. 1. ์์์ฉ ํด๋์ค๋ ์ฌ์ ์ํ ์ ์๋ ๋ฉ์๋๋ค์ ๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ ์ด์ฉํ๋์ง(์๊ธฐ ์ฌ์ฉ) ๋ฌธ์๋ก ๋จ๊ฒจ์ผ ํ๋ค. ๐บ ์ฌ์ ์ ๊ฐ๋ฅ ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์๋ ๋ชจ๋ ์ํฉ์ ๋ฌธ์๋ก ๋จ๊ฒจ์ผ ํ๋ค. ์ ๋ช ํ ๊ฒฉ์ธ ์ค ํ๋์ธ "์ข์ API ๋ฌธ์๋ '์ด๋ป๊ฒ'๊ฐ ์๋ '๋ฌด์'์ ํ๋์ง๋ฅผ ์ค๋ช ํด์ผ ํ๋ค"์ ๋์น๋๋ ๋ด์ฉ์ด๊ธฐ๋ ํ๋ค. ํ์ง๋ง ์์์ด ์บก์ํ๋ฅผ ํด์น๊ธฐ ๋๋ฌธ์ ํด๋์ค๋ฅผ ์์ ํ๊ฒ ์์ํ ์ ์๋๋ก ํ๋ ค๋ฉด '์์๋ง ์๋์๋ค๋ฉด ๊ธฐ์ ํ์ง ์์์ด์ผ ํ ' ๋ด๋ถ ๊ตฌํ ๋ฐฉ์์ ์ค๋ช ํด์ผ ํ๋ค. AbstractCollection.java์ remove ๋ฉ์๋๋ฅผ ์ดํด๋ณด์. ์์ ๊ฐ์ด API ๋ฌธ์์ ๋ฉ์๋ ์ค๋ช ๋์ "Implementation Requirements"๊ฐ ๋ถ์ ๊ฑธ ๋ณผ..

์์๋ณด๋ค๋ ์ปดํฌ์ง์ ์ ์ฌ์ฉํ๋ผ - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 18)]
์์์ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฐ๋ ฅํ ์๋จ์ด์ง๋ง, ํญ์ ์ต์ ์ ์๋๋ค. ์๋ชป ์ฌ์ฉํ๋ฉด ์ค๋ฅ๋ฅผ ๋ด๊ธฐ ์ฌ์ด ์ํํธ์จ์ด๋ฅผ ๋ง๋ค๊ฒ ๋๋ค. ์์ ํด๋์ค์ ํ์ ํด๋์ค๋ฅผ ๋ชจ๋ ๊ฐ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ํต์ ํ๋ ํจํค์ง ์์์๋ผ๋ฉด ์์๋ ์์ ํ ๋ฐฉ๋ฒ์ด๋ค. ํ์ฅํ ๋ชฉ์ ์ผ๋ก ์ค๊ณ๋์๊ณ ๋ฌธ์ํ๋ ์ ๋ ํด๋์ค๋ ๋ง์ฐฌ๊ฐ์ง ์์ ํ๋ค. ํ์ง๋ง ์ผ๋ฐ์ ์ธ ๊ตฌ์ฒด ํด๋์ค๋ฅผ ํจํค์ง ๊ฒฝ๊ณ๋ฅผ ๋์ด, ์ฆ ๋ค๋ฅธ ํจํค์ง์ ๊ตฌ์ฒด ํด๋์ค๋ฅผ ์์ํ๋ ์ผ์ ์ํํ๋ค. ์ฌ๊ธฐ์ ๋ค๋ฃฐ '์์'์ ํด๋์ค๊ฐ ๋ค๋ฅธ ํด๋์ค๋ฅผ ํ์ฅํ๋ '๊ตฌํ ์์'์ ๋งํ๋ค. ํด๋์ค๊ฐ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ฑฐ๋ ์ธํฐํ์ด์ค๊ฐ ๋ค๋ฅธ ์ธํฐํ์ด์ค๋ฅผ ํ์ฅํ๋ '์ธํฐํ์ด์ค ์์'๊ณผ๋ ๋ฌด๊ดํ ๊ฒ์ด๋ค. ๋ฉ์๋ ํธ์ถ๊ณผ ๋ฌ๋ฆฌ ์์์ ์บก์ํ๋ฅผ ๊นจ๋จ๋ฆฐ๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ 2๊ฐ์ง ์ด์ ์ ๋ํด์ ์์๋ณด๊ณ ํด๊ฒฐ์ฑ ์ ๋ํด์ ์..

๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ(๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋ค ๋ ๊ณ ๋ คํ ๊ฒ)(3) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 17)]
์ด์ ๊ธ ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ(๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋๋ ๋ค์ฏ ๊ฐ์ง ๊ท์น)(1) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 17)] ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ(๋ถ๋ณ ํด๋์ค์ ์ฅ์ , ๋จ์ , ๋จ์ ๋์ฒ ๋ฐฉ๋ฒ)(2) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 17)] ์ด๋ฒ ๊ธ์์๋ '๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋ค ๋ ๊ณ ๋ คํ ๊ฒ'์ ๋ํด์ ์์๋ณด์. 1. ์์์ ๋ง์ ์ ์๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ ๐ฆ ์ด์ ๊ธ์ ํตํด ๋ถ๋ณ ํด๋์ค๋ฅผ ๋ณด์ฅํ๋ ค๋ฉด ์์ ์ ์์ํ์ง ๋ชปํ๊ฒ ํด์ผ ํ๋ค๋ ๊ฒ์ ์ ์ ์์๋ค. ์์ ์ ์์ํ์ง ๋ชปํ๊ฒ ํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก final ํด๋์ค์ ๋ํด์ ์์๋ณด์๋ค. ํ์ง๋ง ๋ ์ ์ฐํ ๋ฐฉ๋ฒ์ด ์๋ค. ๋ชจ๋ ์์ฑ์๋ฅผ private ํน์ package-private์ผ๋ก ๋ง๋ค๊ณ public ์ ์ ํฉํฐ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ์ด๋ค. // 1...

๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ(๋ถ๋ณ ํด๋์ค์ ์ฅ์ , ๋จ์ , ๋จ์ ๋์ฒ ๋ฐฉ๋ฒ)(2) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 17)]
์ด์ ๊ธ ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ(๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋๋ ๋ค์ฏ ๊ฐ์ง ๊ท์น)(1) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 17)] ์ด๋ฒ ๊ธ์์๋ ๋ถ๋ณ ํด๋์ค์ ์ฅ์ , ๋จ์ , ๊ทธ๋ฆฌ๊ณ ๋จ์ ๋์ฒ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด์. 1. ์ฅ์ ๐ ๐ ์ฅ์ 1. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์ ํฉํ๋ค. public final class Complex { private final double re; private final double im; public Complex(double re, double im) { this.re = re; this.im = im; } public double realPart() { return re;} public double imaginaryPart() {return im;} public Complex pl..

๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ์ ์ต์ํํ๋ผ(๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋๋ ๋ค์ฏ ๊ฐ์ง ๊ท์น)(1) - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 17)]
๋ถ๋ณ ํด๋์ค๋ ์ธ์คํด์ค์ ๋ด๋ถ ๊ฐ์ ์์ ํ ์ ์๋ ํด๋์ค๋ฅผ ๋งํ๋ค. ๋ถ๋ณ ์ธ์คํด์ค์ ๊ฐ์ง๋ ์ ๋ณด๋ ๊ณ ์ ๋์ด ๊ฐ์ฒด๊ฐ ํ๊ดด๋ ์๊ฐ๊น์ง ์ ๋ ๋ฌ๋ผ์ง์ง ์๋๋ค. ๋ถ๋ณ ํด๋์ค๋ ๊ฐ๋ณ ํด๋์ค๋ณด๋ค ์ค๊ณํ๊ณ ๊ตฌํํ๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ฐ๋ฉฐ, ์ค๋ฅ๊ฐ ์๊ธธ ์ฌ์ง๋ ์ ๊ณ ํจ์ฌ ์์ ํ๋ค๋ ์ด์ ์ด ์๋ค. ์์ดํ 17์์๋ ์๋ 3๊ฐ์ง ๋ด์ฉ์ ๋ค๋ฃจ๊ณ ์๋ค. ๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋๋ ๋ค์ฏ ๊ฐ์ง ๊ท์น ๋ถ๋ณ ํด๋์ค์ ์ฅ์ , ๋จ์ , ๋จ์ ๋์ฒ ๋ฐฉ๋ฒ ๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋ค ๋ ๊ณ ๋ คํ ๊ฒ ์ด๋ฒ ๊ธ์์๋ '1. ๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋๋ ๋ค์ฏ ๊ฐ์ง ๊ท์น'์ ๋ํด์ ์์๋ณด์. 1. ๊ฐ์ฒด์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ์ง ์๋๋ค. ๐ public class PhoneNumber { private short areaCode, prefix, lineNum; pub..

public ํด๋์ค์์๋ public ํ๋๊ฐ ์๋ ์ ๊ทผ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ผ - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 16)]
์ ๋ชฉ์์์ ๊ฐ์ด public ํด๋์ค๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ public ํ๋๊ฐ ์๋ ์ ๊ทผ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๊ณ ์๋ค. 1. public ํด๋์ค์์ public ํ๋๋ฅผ ์ฌ์ฉํ์ ๊ฒฝ์ฐ์ ๋ฌธ์ ์ ๐ฅ public class Point { public double x; public double y; } ์์ ๊ฐ์ ํด๋์ค๋ ๋ฐ์ดํฐ ํ๋์ ์ง์ ์ ๊ทผํ ์ ์์ผ๋ฏ๋ก ์บก์ํ์ ์ด์ ์ ์ ๊ณตํ์ง ๋ชปํ๋ค. ๊ทธ์ ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ์ ์ ๊ฐ์ง๊ฒ ๋๋ค. API๋ฅผ ์์ ํ์ง ์๊ณ ๋ ๋ด๋ถ ํํ์ ๋ฐ๊ฟ ์ ์๋ค. ๋ถ๋ณ์์ ๋ณด์ฅํ ์ ์๋ค. ์ธ๋ถ์์ ํ๋์ ์ ๊ทผํ ๋ ๋ถ์ ์์ ์ ์ํํ ์ ์๋ค. 2. public ํด๋์ค์์ ์ ๊ทผ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ ๊ฒฝ์ฐ์ ์ด์ ๐ง public class Point { private double ..

ํด๋์ค์ ๋ฉค๋ฒ์ ์ ๊ทผ ๊ถํ์ ์ต์ํํ๋ผ - [4์ฅ. ํด๋์ค์ ์ธํฐํ์ด์ค(์์ดํ 15)]
์ด๋ฒ ๊ธ์ ํตํด '์ ๋ณด ์๋์ ์ฅ์ '๊ณผ 'ํด๋์ค์ ์ธํฐํ์ด์ค', '๋ฉค๋ฒ(ํ๋, ๋ฉ์๋, ์ค์ฒฉ ํด๋์ค, ์ธํฐํ์ด์ค)'์ ์ ๊ทผ ์ ํ์ ์์น์ ๋ํด์ ์์๋ณด์. 1. ์ ๋ณด ์๋์ ์ฅ์ ๐ธ ์ ๋ณด ์๋์ ์ฅ์ ์ ์ ๋ง ๋ง์๋ฐ ๊ทธ์ค ๋๋ถ๋ถ์ ๊ตฌํ๊ณผ API๋ฅผ ๋ถ๋ฆฌ์์ผ์ ์ป๋ ์ด์ ๊ณผ ์ฐ๊ด๋์ด ์๋ค. ์ ๋ณด ์๋์ ์ฅ์ ์ ์๋์ ๊ฐ๋ค. ์์คํ ๊ฐ๋ฐ ์๋๋ฅผ ๋์ธ๋ค. ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ฅผ ๋ณ๋ ฌ๋ก ๊ฐ๋ฐํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์์คํ ๊ด๋ฆฌ ๋น์ฉ์ ๋ฎ์ถ๋ค. ๊ฐ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋นจ๋ฆฌ ํ์ ํ์ฌ ๋๋ฒ๊น ํ ์ ์๊ณ , ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ก ๊ต์ฒดํ๋ ๋ถ๋ด๋ ์ ๊ธฐ ๋๋ฌธ์ด๋ค. ์ ๋ณด ์๋ ์์ฒด๊ฐ ์ฑ๋ฅ์ ๋์ฌ์ฃผ์ง๋ ์์ง๋ง, ์ฑ๋ฅ ์ต์ ํ์ ๋์์ ์ค๋ค. ์์ฑ๋ ์์คํ ์ ํ๋กํ์ผ๋งํด ์ต์ ํํ ์ปดํฌ๋ํธ๋ฅผ ์ ํ ๋ค์, ๋ค๋ฅธ ์ปดํฌ๋ํธ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ํด๋น ์ปดํฌ๋ํธ๋ง ์ต..

Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ คํ๋ผ - [3์ฅ. ๋ชจ๋ ๊ฐ์ฒด์ ๊ณตํต ๋ฉ์๋(์์ดํ 14)]
์ด๋ฒ ๊ธ์ ํตํด Comparable์ ์ด๋ป๊ฒ ๊ตฌํํ๋ฉด ์ข์์ง ์์๋ณด๊ณ ์ ํ๋ค. ์ฐ์ ์ 'compareTo ๊ท์ฝ'์ ๋ํด์ ์์๋ณด๊ณ 'compareTo๋ฅผ ๊ตฌํํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ'์ ๋ํด์ ์์๋ณผ ๊ฒ์ด๋ค. (๋ง์ฝ Comparable์ ๋ํ ๊ธฐ๋ณธ์ง์์ด ํ์ํ๋ค๋ฉด ์ด์ ๊ธ์ ์ฐธ๊ณ ํ๊ธฐ ๋ฐ๋๋ค.) ๋ค์ด๊ฐ๊ธฐ์ ์์ Comparable ์ธํฐํ์ด์ค์ ์ ์ผ๋ฌด์ดํ ๋ฉ์๋์ธ compareTo์ ํน์ง์ ๋ํด์ ํ๋ฒ ์ดํด๋ณด์. ์ด๋ ์๋์ 2๊ฐ์ง๋ง ๋นผ๋ฉด Object.equals์ ๊ฐ๋ค. ๋จ์ ๋์น์ฑ ๋น๊ต์ ๋ํด์ ์์๊น์ง ๋น๊ตํ ์ ์๋ค. Generic์ ์ง์ํ๋ค. 1. compareTo ๊ท์ฝ ๐ช sgn(ํํ์) ํ๊ธฐ๋ ์ํ์์ ๋งํ๋ ๋ถํธ ํจ์๋ฅผ ๋ปํ๋ฉฐ, ํํ์์ ๊ฐ์ด ์์, 0, ์์ ์ผ ๋ -1, 0, 1์ ๋ฐํํ๋๋ก ์ ์ํ..