์ธ์คํด์คํ๋ฅผ ๋ง์ผ๋ ค๋ฉด, private ์์ฑ์๋ฅผ ์ฌ์ฉํ๋ผ
์ ์ ๋ฉ์๋, ์ ์ ํ๋๋ง์ ๋ด์ ํด๋์ค๋ ๋๋ฆ ์ฐ์์๊ฐ ์์.
java.lang.Math
์ ์ ์ผ๋ก ์ ์ธ๋ ๊ธฐ๋ณธ ํ์
๊ฐ, ๋ฉ์๋๋๋ฅผ ๋ชจ์๋ .
public final class Math {
// ์์ฑ์๋ privateํ๊ฒ,
private Math () {}
// ๋๋จธ์ง ํ๋๊ฐ๋ค์ ๋ชจ๋ staticํ๊ฒ ์ ์ธ ๋์ด์์.
public static final double E = 2.7182818284590452354 ;
public static final double PI = 3.14159265358979323846 ;
...
}
java.util.Collection ์ฒ๋ผ ํน์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ฃผ๋ ์ ์ ๋ฉ์๋๋ฅผ ๋ชจ์๋ ์ ๋ ์์.
list, set, map๋ฑ์ ์์ฑํ์ฌ returnํ๋ ์ ์ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์์.
final ํด๋์ค์ ๊ด๋ จํ ๋ฉ์๋๋ค์ ๋ชจ์ ๋์ ๋ ์ฌ์ฉ.
์ ์ ํ๋, ์ ์ ๋ฉ์๋๋ค์ ๋ด์ ํด๋์ค๋ฅผ ์ ํธ๋ฆฌํฐ ํด๋์ค ๋ผ ๋ถ๋ฆ.
์ ํธ๋ฆฌํฐ ํด๋์ค๋ค์ ์ธ์คํด์ค๋ก ๋ง๋๋ ค๊ณ ์ค๊ณํ ๊ฒ์ด ์๋.
์ฆ ์ ํธ๋ฆฌํฐ ํด๋์ค ๊ธฐ๋ฅ์ด๋ค? ๊ทธ๋ ค๋จผ ์์ฑ์๊ฐ ํ๋ ์ญํ ์ด ์์.
๊ทธ๋ ์ง๋ง ์ปดํ์ผ๋ฌ๋ ์์ฑ์๋ฅผ ๋ช
์ํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ๋ง๋ค์ด์ค
์ฆ ์์ฑ์๋ฅผ privateํ๊ฒ ํ์ง ์์ ๊ฒฝ์ฐ, ๊ฐ๋ฐ์๋ค์ด ์์ํ์ง ๋ชปํ ์ ํธ๋ฆฌํฐ ํด๋์ค์ ์ธ์คํด์คํ๊ฐ ๊ฐ๋ฅํ ์ ์๋ค.
์ด๋ฌํ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด์ privateํ ์์ฑ์๋ฅผ ์ ํธ๋ฆฌํฐ ํด๋์ค์ ๋ช
์ํด์ค์ผ ํ๋ค.
์ง๋ฌธ : ์ถ์ ํด๋์ค๋ก ์ ํธ๋ฆฌํฐ ํด๋์ค๋ฅผ ์ ์ธํด์ฃผ๋ฉด ์ด๋จ๊น?
์ผ๋จ ์ถ์ํด๋์ค๋ ์ธ์คํด์ค๋ฅผ ๋ง๋ค ์ ์์.
๊ทธ๋ ์ง๋ง, ์ถ์ ํด๋์ค๋ฅผ ์์๋ฐ์ ํ์ ํด๋์ค์์๋ ์ธ์คํด์ค ๊ฐ ๊ฐ๋ฅํ๋ค.
์ฆ ์ ํธ๋ฆฌํฐ ํด๋์ค๊ฐ ์ถ์ ํด๋์ค๋ก ์ ์ธ๋์ด ์๋ค๋ฉด, ์ฌ์ฉ์๊ฐ "์ ์์๋ฐ์์ ์์ฑ์ ๋ง๋ค์ด์ผ ๊ฒ ๋น!" ์ด๋ผ๊ณ ์คํดํ ์๋ ์์.
ํญ์ ์๋์น ์์ ์ค๋ฅ๋ฅผ ๋ง์์ผํจ..
์ธ์คํด์ค๋ฅผ ๋ง๋ค ์ ์๋ ์ ํธ๋ฆฌํฐ ํด๋์ค
public class UtilityClass {
//privateํ ๊ธฐ๋ณธ ์์ฑ์ ์ ์๋ฅผ ํตํด, ์ปดํ์ผ๋ฌ๊ฐ ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ์๋์ผ๋ก ์์ฑํด์ฃผ๋ ๊ฒ์ ๋ง๊ณ ์ด๋ฅผ ํตํด ์๋์น ์์ ์ธ์คํด์คํ๋ฅผ ๋ง๋๋ค.
private UtilityClass () {
throw new AssertionError (); //์์ฑ์๊ฐ ํธ์ถ ๋์์ ๊ฒฝ์ฐ, ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋๋ก ์ค๊ณํ๋ค.
}
}
๋ช
์์ ์ธ ์์ฑ์๊ฐ private์ด๋, ํด๋์ค ๋ฐ๊นฅ์์ ํด๋น ์์ฑ์์ ์ ๊ทผํ ์๋ ์์.
๊ทธ๋ ์ง๋ง ํด๋์ค ๋ด๋ถ์์๋ ํธ์ถ ๊ฐ๋ฅํ๋ ์ค์๋ผ๋ ์์ฑ์๋ฅผ ํธ์ถํ์ง ์๋๋ก ๋ง์์ค ์ ์์.
๋ํ privateํ ์์ฑ์๋ฅผ ๋ง๋๋ ๋ฐฉ์์ ์์์ ๋ถ๊ฐ๋ฅํ๊ฒ๋ ํ๋ค.
๋ชจ๋ ์์ฑ์๋ ์์ ํด๋์ค์ ์์ฑ์๋ฅผ ํธ์ถํ๋๋ฐ, ์์ํด๋์ค์ ์์ฑ์๊ฐ privateํ๊ฒ ์ ์ธ๋์ด์์ ๊ฒฝ์ฐ, ํ์ ํด๋์ค์์ ์์ ํด๋์ค์ ์์ฑ์์ ์ ๊ทผํ ๊ธธ์ด ๋งํ๊ฒ ๋จ.