π»
Java νλ‘κ·Έλλ° - μμ±μ μ€λ³΅(Overloading), λ€λ₯Έ μμ±μ νΈμΆ(this()), μ§μ μμ½μ΄(static/ final/ static final) λ³Έλ¬Έ
Java νλ‘κ·Έλλ° - μμ±μ μ€λ³΅(Overloading), λ€λ₯Έ μμ±μ νΈμΆ(this()), μ§μ μμ½μ΄(static/ final/ static final)
λν¨λ 2020. 5. 6. 16:33- μμ±μ μ€λ³΅
: 맀κ°λ³μλ₯Ό λ¬λ¦¬νλ μμ±μλ₯Ό μ¬λ¬ κ° μ μΈνλ κ²
맀κ°λ³μμ νμ κ³Ό κ°μ κ·Έλ¦¬κ³ μ μΈλ μμκ° λκ°μ κ²½μ° λ§€κ°λ³μ μ΄λ¦λ§ λ°κΎΌλ κ²μ μμ±μ μ€λ²λ‘λ©μ΄ μλλ€.
- λ€λ₯Έ μμ±μ νΈμΆ(this())
: μμ±μμμ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν λλ this() λ₯Ό μ¬μ©νλ€.
μμ±μ μ€λ²λ‘λ©μ΄ λ§μμ§ κ²½μ° μμ±μ κ°μ μ€λ³΅λ μ½λκ° λ°μν μ μλ€. λ§€κ° λ³μμ μλ§ λ¬λ¦¬νκ³ νλ μ΄κΈ°ν λ΄μ©μ΄ λΉμ·ν μμ±μμμ μ΄λ¬ν νμμ λ³Ό μ μλ€. μ΄ κ²½μ°μλ νλ μ΄κΈ°ν λ΄μ©μ ν μμ±μμλ§ μ§μ€μ μΌλ‘ μμ±νκ³ λλ¨Έμ§ μμ±μλ μ΄κΈ°ν λ΄μ©μ κ°μ§κ³ μλ μμ±μλ₯Ό νΈμΆνλ λ°©λ²μΌλ‘ κ°μ ν μ μλ€. μ€λ³΅ μ½λλ₯Ό μ΅μννλ€.
쑰건 1) λ°λμ μμ±μμ 첫 μ€μμλ§ νμ©λλ€. 2) μμ±μμ μ΄λ¦μΌλ‘ ν΄λμ€μ΄λ¦ λμ thisλ₯Ό μ¬μ©νλ€.
- static
staticν¨μλ staticλ§ κ°μ Έλ€ μ΄λ€. static ν¨μλ λ³μμ΄λ ν¨μμ΄λ μΈλΆμμ κ°μ Έμ€λ 건 무쑰건 staticλ§!
setCount()ν¨μκ° λͺλ² νΈμΆλμλμ§ μκ³ μΆμλ°, newν€μλλ‘ κ°μ²΄κ° μμ±λ λλ§λ€ μ΄κΈ°νλκΈ° λλ¬Έμ 1μ΄ μΆλ ₯.
static λ³μλ‘ μ μΈν΄μ 1, 2, 3μ΄ μΆλ ₯λλ κ²μ λ³Ό μ μλ€.
staticμ νλ‘κ·Έλ¨μ΄ μ’ λ£λ λκΉμ§ μ΄μμλ€. λ¨μ©νλ©΄ λ©λͺ¨λ¦¬κ³΅κ°μ λ§μ΄ μ°¨μ§νκ²λλ―λ‘ μ£Όμν΄μΌνλ€.
μ κ·Όμ ν(private, public) / μ§μ μμ½μ΄(static, final, static final)
μ§μ μμ½μ΄λ (default(μλκ±°), static, final, static final)λ‘ 4κ°μ§λ‘ ꡬμ±νλ€.
staticν¨μλ staticλ³μλ§ μ¬μ©κ°λ₯. ν΄λμ€λ₯Ό μ΄μ©ν΄μ μ κ·Όν΄μΌνλ€. (ν¨μνΈμΆμ ν΄λμ€λͺ μΌλ‘ μ κ·Όνλ€.)
<ν΄λμ€λ€μ΄μ΄κ·Έλ¨(Class Diagram)>
- public : +
- private : -
- (ν¨μλͺ )(λ³μλͺ : μλ£ν)
- static : λ°μ€(ν¨μ λ³μ λλ€ μ¬μ©)
API λ¬Έμ μμ£Ό 보기!!
곡μ λ¬Έμ μ μ°Ύμμ μΈ μ€ μμμΌνλ€.
https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/io/PrintStream.html
https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/util/Scanner.html
- final
finalνλλ μ΄κΈ°κ°μ΄ μ μ₯λλ©΄ μ΄κ²μ΄ μ΅μ’ μ μΈ κ°μ΄ λμ΄μ νλ‘κ·Έλ¨ μ€ν λμ€μ μμ μ΄ μλλ€.
μ¦, κΈ°λ³Έκ°λ μ κ°μ΄ μΉννμ§ μλλ€. μ§μλ³μλ‘ μ μΈμ κ°λ₯νλ€.
final μ κ°μ λ°μ μλ μμ§λ§, μ λ¬ν΄μ£Όμ§ λͺ»νλ€.
<ν΄λμ€ λ€μ΄μ΄κ·Έλ¨>
- final: {readOnly}
- static final
μμ(λΆλ³μ κ°) ν λ² μ΄κΈ°κ°μ΄ μ μ₯λλ©΄ λ³κ²½ν μ μλ€.
staticν¨μμμ final λ³μ μ¬μ© μλλ€. μΈ μ μμΌλ €λ©΄ static finalλ₯Ό μ¬μ©νλ€.
[μ 리]
- μμ±μ μ€λ³΅μ 맀κ°λ³μμ κ°μλ νμ μ΄ λ€λ₯΄λ©΄ μ¬μ©κ°λ₯νλ€.
- μμ±μ κ°μ νΈμΆν μμλ this() λ₯Ό μ¬μ©νλ€.
- static ν¨μ λ΄μμλ static λ³μλ§ μ΄λ€. (static(o), static final(o), final(x), default(x))
- finalμ λ³νμ§ μλ κ°μΌ λ μ¬μ©νλ€.
static μ΄ μ¬μ©λ μ μλ κ³³ - λ©€λ²λ³μ, λ©μλ, μ΄κΈ°ν λΈλ
μ μ΄μ | λμ | μλ―Έ |
static | λ©€λ²λ³μ | - λͺ¨λ μΈμ€ν΄μ€μ 곡ν΅μ μΌλ‘ μ¬μ©λλ ν΄λμ€λ³μκ° λλ€. - ν΄λμ€λ³μλ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ λ μ¬μ© κ°λ₯νλ€. - ν΄λμ€κ° λ©λͺ¨λ¦¬μ λ‘λλ λ μμ±λλ€. |
λ©μλ | - μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ λ νΈμΆμ΄ κ°λ₯ν staticλ©μλκ° λλ€. - static λ©μλ λ΄μμλ μΈμ€ν΄μ€λ©€λ²λ€μ μ§μ μ¬μ©ν μ μλ€. |
final μ΄ μ¬μ©λ μ μλ κ³³ - ν΄λμ€, λ©μλ, λ©€λ²λ³μ, μ§μλ³μ
λ³μμ μ¬μ©λλ©΄ κ°μ λ³κ²½ν μ μλ μμκ° λλ©°, λ©μλμ μ¬μ©λλ©΄ μ€λ²λΌμ΄λ©μ ν μ μκ² λκ³ ν΄λμ€μ μ¬μ©λκ² λλ©΄ μμ μ νμ₯νλ μμν΄λμ€λ₯Ό μ μνμ§ λͺ»νκ² λλ€.
μ μ΄μ | λμ | μλ―Έ |
final | ν΄λμ€ | λ³κ²½λ μ μλ ν΄λμ€, νμ₯λ μ μλ ν΄λμ€κ° λλ€. κ·Έλμ finalλ‘ μ§μ λ ν΄λμ€λ λ€λ₯Έ ν΄λμ€μ μ‘°μμ΄ λ μ μλ€. |
λ©μλ | λ³κ²½λ μ μλ λ©μλ, finalλ‘ μ§μ λ λ©μλλ μ€λ²λΌμ΄λ©μ ν΅ν΄ μ¬μ μ λ μ μλ€. | |
λ©€λ²λ³μ | λ³μμμ finalμ΄ λΆμΌλ©΄, κ°μ λ³κ²½ν μ μλ μμκ° λλ€. | |
μ§μλ³μ |