Explicit Initialization ¶
μΈμ€ν΄μ€ λ³μλ€μ μ΄λ»κ² λν΄νΈκ°μΌλ‘ μ΄κΈ°νμμΌμ£Όλκ°?
μ΄κΈ°νμ λν΄μλ λ±ν μ ν΄μ§ μ’μ λ°©λ²μ΄ μλ€.(μν©μ λ°λΌ νμΌν΄μ μ°λΌλ λ§) μ΄ ν¨ν΄μ μ μ°μ±λ³΄λ€λ κ°λ
μ±μ μ€μνλ€. λͺ¨λ μ΄κΈ°νλ₯Ό νλμ λ©μλμ λλ €λ£λ λ°©λ²μ΄λ€. μ μ°μ±μ λ¨μ΄μ§ μ λ°μ μλ€. λ³μ νλ μΆκ°νμλ©΄ ExplicitInitialization λ©μλλ₯Ό μμ ν΄μΌλ§ νλ€λ κ²μ κΈ°μ΅νκ³ μμ΄μΌ νκΈ° λλ¬Έμ΄λ€. ExplicitInitializationμ LazyInitializationλ³΄λ€ λΉμ©μ΄ λ§μ΄ λ λ€. λͺ¨λ λ³μλ₯Ό μΈμ€ν΄μ€κ° μμ±λ λ μ΄κΈ°ν νκΈ° λλ¬Έμ΄λ€.
λͺ¨λ λ³μλ€μ λͺ
μμ μΌλ‘ μ€μ ν΄μ£Όλ initializeλ©μλλ₯Ό ꡬννλΌ. newλ©μΈμ§λ₯Ό μ€λ²λΌμ΄λ©ν΄μ μλ‘μ΄ μΈμ€ν΄μ€μ λ§κ² νλΌ.
1000 λ°λ¦¬μΈμ»¨λλ§λ€ μ€νλλ νμ΄λ¨Έλ₯Ό μκ°ν΄λ³΄μ. μ΄ νμ΄λ¨Έλ μΌλ§λ λ§μ μκ°μ΄ μ§λκ°λλ κΈ°μ΅νκ³ μλ€.
~cpp Class Timer { /* ... */ void initialize() { count = 0; period = defaultMillisecondPeriod(); // C++/JAVAμμλ κ·Έλ₯ μμλ‘ μ¨λ λ λ―νλ€. } int defaultMillisecondPeriod() { return 1000; } Timer() { initialize(); } };