μ μ λ©μλλ§ λ΄μ μ νΈλ¦¬ν° ν΄λμ€λ μΈμ€ν΄μ€λ‘ λ§λ€μ΄ μ°λ €κ³ μ€κ³ν ν΄λμ€κ° μλλ€. νμ§λ§ μμ±μλ₯Ό λͺ μνμ§ μμΌλ©΄ μ»΄νμΌλ¬κ° μλμΌλ‘ κΈ°λ³Έ μμ±μλ₯Ό λ§λ€μ΄μ€λ€. μ¦, 맀κ°λ³μλ₯Ό λ°μ§ μλ public μμ±μκ° λ§λ€μ΄μ§λ©°, μ¬μ©μλ μ΄ μμ±μκ° μλ μμ±λ κ²μΈμ§ ꡬλΆν μ μλ€. κ·Έλμ μ΄λ² μμ΄ν μ ν΅ν΄ μΈμ€ν΄μ€ μμ±μ λ°©μ§νλ λ°©λ²μ μμλ³΄κ³ μ νλ€.
public abstract class UtilityClass{
// μλλ κΈ°λ³Έμμ±μκ° μμ§λ§, μΆλ ₯μ ν΅ν΄ λμΌλ‘ νμΈνκΈ° μν΄ μλμ κ°μ΄ μμ±νμλ€.
public UtilityClass(){
System.out.println("Contructor"):
}
}
public class DefaultUtilityClass extends UtilityClass{
}
----------
public static void main(String[] args){
DefaultUtilityClass utilityClass = new DefaultUtilityClass(); // Contructorκ° μΆλ ₯λ¨
}
μμμ νμΈν μ μλ κ²μ²λΌ μΆμ ν΄λμ€λ‘ λ§λλ κ²μΌλ‘λ μΈμ€ν΄μ€νλ₯Ό λ§μ μ μλ€. λν, abstractλΌλ κ² λλ¬Έμ μ¬μ©μλ μ΄ ν΄λμ€λ₯Ό μμν΄μ μ°λΌλ λ»μΌλ‘ μ€ν΄ν μ μλ€.
public class UtilityClass{
private UtilityClass(){
}
}
μ΄μ λν ν΄κ²°μ± μ΄ private μμ±μλ₯Ό μΆκ°νμ¬ ν΄λμ€μ μΈμ€ν΄μ€νλ₯Ό λ§μλ κ²μ΄λ€. μ΄ λ°©μμ μμ μ체λ₯Ό λΆκ°λ₯νκ² νλ€λ ν¨κ³Όλ μλ€.
μ¬κΈ°μ μμ΄λ¬λν μ μ΄ μλ€. κ΅³μ΄ μμ±μλ₯Ό λ§λ€λ©΄μκΉμ§ μμ±μλ₯Ό λͺ» μ°κ² νκ³ μλ€. 보ν΅μ μΈ μ μλ κ²μ μ½λλ‘ λ§λλ λ° μ¬κΈ°μλ μ°μ§ λͺ»νλ κ²μ μ½λλ‘ λ§λ€κ³ μλ€. μ΄λ¬ν μκ°μ λ°©μ§νκ³ μ μλμ κ°μ λ¬Έμνλ₯Ό μΆμ²νκ³ μλ€.
/**
* μ΄ ν΄λμ€λ μΈμ€ν΄μ€λ₯Ό λ§λ€ μ μμ΅λλ€.
*/
public class UtilityClass{
private UtilityClass(){
}
}
μ 리νμλ©΄, μΈμ€ν΄μ€νλ₯Ό λ§μΌλ €κ±°λ private μμ±μλ₯Ό μ¬μ©νμ. κ·Έλ¦¬κ³ μμ±μκ° λΆλͺ μ‘΄μ¬νλλ° νΈμΆν μ μλ μ§κ΄μ μ΄μ§ μμ μν©μ ν΄κ²°νκΈ° μν΄ μ μ ν μ£Όμμ λ¬μλλλ‘ νμ.
ν΄λΉ κΈμ λ°±κΈ°μ λμ 'μ΄νν°λΈ μλ° μλ²½ 곡λ΅'μ μκ°νκ³ μμ±ν κ²μ λλ€.