item 4 leekyunghee - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
μΈμ€ν΄μ€νλ₯Ό λ§μΌλ €κ±°λ private μμ±μλ₯Ό μ¬μ©νλΌ
- μ μ λ©μλμ μ μ νλλ§μ λ΄μ ν΄λμ€λ₯Ό λ§λ€κ³ μΆμ λ (κ°μ²΄μ§ν₯μ μΌλ‘ μ¬κ³ νμ§ μλ κ²½μ° λ¨μ©νλ λ°©μ)
λ€μ μμλ‘ μμ보μ.
- java.lang.Mathμ java.util.Arrays μ²λΌ κΈ°λ³Έ νμ κ°μ΄λ λ°°μ΄κ³Ό κ΄λ ¨λ λ©μλλ€μ λͺ¨μλμ μ μλ€.
- java.util.Collection μ²λΌ νΉμ μΈν°νμ΄μ€λ₯Ό ꡬννλ κ°μ²΄λ₯Ό μμ±ν΄μ£Όλ μ μ λ©μλ(νΉμ ν©ν 리)λ₯Ό λͺ¨μλμ μμλ€. (java 8λΆν° μ΄λ° λ©μλλ₯Ό μΈν°νμ΄μ€μ λ£μ μ μλ€.)
- final ν΄λμ€μ κ΄λ ¨ν λ©μλλ€μ λͺ¨μλμ λλ μ¬μ©νλ€.
final ν΄λμ€λ₯Ό μμν΄μ νμ ν΄λμ€μ λ©μλλ₯Ό λ£λ 건 λΆκ°λ₯νκΈ° λλ¬Έμ΄λ€.
- μ μ λ©€λ²λ§ λ΄μ μ νΈλ¦¬ν° ν΄λμ€λ μΈμ€ν΄μ€λ‘ λ§λ€μ΄ μ°λ €κ³ μ€κ³ν κ² μλλ€.
νμ§λ§ μμ±μλ₯Ό λͺ μνμ§ μμΌλ©΄ μ»΄νμΌλ¬κ° μλμΌλ‘ κΈ°λ³Έ μμ±μλ₯Ό λ§λ€μ΄μ€λ€. λ§€κ°λ³μλ₯Ό λ°μ§ μλ public μμ±μκ° λ§λ€μ΄μ§λ©° μλμΉμκ² μΈμ€ν΄μ€νν μ μκ² λ ν΄λμ€κ° μ’ μ’ λͺ©κ²©λκ³€ νλ€.
μΈμ€ν΄μ€νλ₯Ό λ§λ λ°©λ²
-
μΆμ ν΄λμ€λ‘ λ§λλ κ²μΌλ‘λ μΈμ€ν΄μ€νλ₯Ό λ§μ μ μλ€. νμ ν΄λμ€λ₯Ό λ§λ€μ΄ μΈμ€ν΄μ€ν νλ©΄ κ·Έλ§μ΄κΈ° λλ¬Έμ΄λ€.
-
μ»΄νμΌλ¬κ° κΈ°λ³Έ μμ±μλ₯Ό λ§λλ κ²½μ°λ μ€μ§ λͺ μλ μμ±μκ° μμ λ λΏμ΄λ private μμ±μλ₯Ό μΆκ°νλ©΄ ν΄λμ€μ μΈμ€ν΄μ€νλ₯Ό λ§μ μ μλ€.
-
μΈμ€ν΄μ€λ₯Ό λ§λ€ μ μλ μ νΈλ¦¬ν° ν΄λμ€
public class UtilityClass {
//κΈ°λ³Έ μμ±μκ° λ§λ€μ΄μ§λ κ²μ λ§λλ€. (μΈμ€ν΄μ€ν λ°©μ§μ©)
private UtilityClass() {
throw new AssertionError();
}
... μ€λ΅
}
λͺ μμ μμ±μκ° privateμ΄λ ν΄λμ€ λ°κΉ₯μμλ μ κ·Όν μ μλ€.
ν΄λμ€ μμμ μ€μλ‘λΌλ μμ±μλ₯Ό νΈμΆνμ§ μλλ‘ errorλ₯Ό λ±μ΄μ€λ€.
νμ ν΄λμ€κ° μμ ν΄λμ€μ μμ±μμ μ κ·Όν κΈΈμ΄ λ§νλ²λ € μμμ λΆκ°λ₯νκ² νλ ν¨κ³Όλ μλ€.
ν΅μ¬ μ 리
λͺ
μμ μμ±μλ₯Ό λ§λ€μ.