item 67 Jung incheol - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
Effective Java 3e μμ΄ν 67λ₯Ό μμ½ν λ΄μ© μ λλ€.
μλμ κ°μ μ΅μ ν 격μΈμ΄ μλ€.
(λ§Ήλͺ©μ μΈ μ΄λ¦¬μμμ ν¬ν¨ν΄) κ·Έ μ΄λ€ νκ³λ³΄λ€ ν¨μ¨μ±μ΄λΌλ μ΄λ¦ μλ νν΄μ§ μ»΄ν¨ν μ£μ μ΄ λ λ§λ€(μ¬μ§μ΄ ν¨μ¨μ λμ΄μ§λ λͺ»νλ©΄μ)
μ리μ μΈν
(μ 체μ 97% μ λμΈ) μκ·Έλ§ν ν¨μ¨μ±μ λͺ¨λ μμ. μ£λΆλ₯Έ μ΅μ νκ° λ§μ μ κ·Όμμ΄λ€.
λλλ ν¬λμ€
μ΅μ νλ₯Ό ν λλ λ€μ λ κ·μΉμ λ°λ₯΄λΌ.
첫 λ²μ§Έ, νμ§ λ§λΌ
λ λ²μ§Έ, (μ λ¬Έκ° νμ )μμ§ νμ§ λ§λΌ. λ€μ λ§ν΄, μμ ν λͺ λ°±νκ³ μ΅μ νλμ§ μμ ν΄λ²μ μ°Ύμ λκΉμ§λ νμ§ λ§λΌ
M. A. μμ¨
μ΅μ ν
λ μ’μ 결과보λ€λ ν΄λ‘μ΄ κ²°κ³Όλ‘ μ΄μ΄μ§κΈ° μ½κ³ , μ£λΆλ¦¬ μ§ννλ©΄ νΉν λ κ·Έλ λ€. λΉ λ₯Έ νλ‘κ·Έλ¨λ³΄λ€λ μ’μ νλ‘κ·Έλ¨μ μμ±νλΌ. μ’μ νλ‘κ·Έλ¨μ΄μ§λ§ μνλ μ±λ₯μ΄ λμ€μ§ μλλ€λ©΄ κ·Έ μν€ν
μ² μμ²΄κ° μ΅μ νν μ μλ κΈΈμ μλ΄ν΄μ€ κ²μ΄λ€. μ’μ νλ‘κ·Έλ¨μ μ 보 μλ μμΉ
μ λ°λ₯΄λ―λ‘ κ°λ³ ꡬμ±μμμ λ΄λΆλ₯Ό λ
립μ
μΌλ‘ μ€κ³ν μ μλ€. λ°λΌμ μμ€ν
μ λλ¨Έμ§μ μν₯μ μ£Όμ§ μκ³ λ κ° μμλ₯Ό λ€μ μ€κ³ν μ μλ€.
ꡬνμμ λ¬Έμ λ λμ€μ μ΅μ νν΄ ν΄κ²°ν μ μμ§λ§, μν€ν
μ²μ κ²°ν¨
μ΄ μ±λ₯μ μ ννλ μν©μ΄λΌλ©΄ μμ€ν
μ 체λ₯Ό λ€μ μμ±νμ§ μκ³ λ ν΄κ²°νκΈ° λΆκ°λ₯ν μ μλ€. λ°λΌμ μ€κ³ λ¨κ³μμ μ±λ₯μ λ°λμ μΌλμ λμ΄μΌ νλ€.
μμ± ν λ³κ²½νκΈ°κ° κ°μ₯ μ΄λ €μ΄ μ€κ³ μμλ λ°λ‘ μ»΄ν¬λνΈ
λΌλ¦¬, νΉμ μΈλΆ μμ€ν
κ³Όμ μν΅ λ°©μμ΄λ€.
public
νμ
μ κ°λ³μΌλ‘ λ§λ€λ©΄, μ¦ λ΄λΆ λ°μ΄ν°λ₯Ό λ³κ²½ν μ μκ² λ§λ€λ©΄ λΆνμν λ°©μ΄μ 볡μ¬
λ₯Ό μμμ΄ μ λ°ν μ μλ€. λΉμ·νκ², μ»΄ν¬μ§μ
μΌλ‘ ν΄κ²°ν μ μμμλ μμ λ°©μ
μΌλ‘ μ€κ³ν public
ν΄λμ€λ μμ ν΄λμ€μ μμν μ’
μλλ©° κ·Έ μ±λ₯ μ μ½κΉμ§λ λ¬Όλ €λ°κ² λλ€. νΉμ ꡬν체μ μ’
μλκ² νμ¬, λμ€μ λ λΉ λ₯Έ ꡬνμ²΄κ° λμ€λλΌλ μ΄μ©νμ§ λͺ»νκ² λλ€.
java.awt.Component
ν΄λμ€μ getSize
λ©μλλ₯Ό μκ°ν΄λ³΄μ. Dimension
μΈμ€ν΄μ€λ₯Ό λ°νν λΏλ§ μλλΌ κ°λ³μΌλ‘ μ€κ³λμ΄ getSize
λ₯Ό νΈμΆνλ λͺ¨λ κ³³μμ Dimension
μΈμ€ν΄μ€λ₯Ό μλ‘ μμ±ν΄μΌλ§ νλ€.
public Dimension getSize() {
return size();
}
@Deprecated
public Dimension size() {
return new Dimension(width, height);
}
Dimension
μ λΆλ³μΌλ‘ λ§λλ κ² κ°μ₯ μ΄μμ μ΄μ§λ§, getSize
λ₯Ό getWidth
μ getHeight
λ‘ λλλ λ°©λ²λ μλ€. μ¦, Dimension
κ°μ²΄μ κΈ°λ³Έ νμ
κ°λ€μ λ°λ‘λ°λ‘ λ°ννλ λ°©μμ΄λ€.
public Long getSize() {
return this.getWight() * this.getHeight();
}
μ±λ₯μ μν΄ API
λ₯Ό μ곑νλ 건 λ§€μ° μ μ’μ μκ°μ΄λ€. API
λ₯Ό μ곑νλλ‘ λ§λ κ·Έ μ±λ₯ λ¬Έμ λ ν΄λΉ νλ«νΌμ΄λ μλ«λ¨ μννΈμ¨μ΄μ λ€μ λ²μ μμ μ¬λΌμ§ μλ μμ§λ§, μ곑λ API
μ μ΄λ₯Ό μ§μνλ λ° λ°λ₯΄λ κ³ ν΅μ μμν κ³μλ κ²μ΄λ€.