π‘ λ³μ
class Variables{
int iv; // μΈμ€ν΄μ€λ³μ
static int cv; //ν΄λμ€λ³μ
void method(){ // λ©μλ
int lv = 0; // μ§μλ³μ
}
}
λ³μμ μ’ λ₯ | μ μΈ μμΉ | μμ± μκΈ° | νΉμ§ |
ν΄λμ€ λ³μ | ν΄λμ€ μμ | ν΄λμ€κ° λ©λͺ¨λ¦¬μ μ¬λΌκ° λ | static, μ μλ³μμ μ±κ²© |
μΈμ€ν΄μ€ λ³μ | μΈμ€ν΄μ€κ° μμ±λμμ λ | μΈμ€ν΄μ€ μμ±μ΄ μ νλμ΄μΌ ν¨ | |
μ§μ λ³μ | ν΄λμ€ μμ μ΄μΈμ μμ (λ©μλ, μμ±μ, μ΄κΈ°ν λΈλ λ΄λΆ) |
λ³μ μ μΈλ¬Έμ΄ μνλμμ λ | μ μΈλ λΈλμ λ²μ΄λλ©΄ μλ©Έλ¨ |
π λ©€λ² λ³μ(Member Variable)
λ©€λ² λ³μλ ν΄λμ€μ μμ±μ λνλΈλ€. λ©€λ²λ³μ μ΄μΈμ λ³μλ λͺ¨λ μ§μ λ³μ(local variable)μ΄λ€. λ©€λ² λ³μλ ν΄λμ€ λ³μμ μΈμ€ν΄μ€ λ³μλ‘ λλλ©°, κ°κ°μ νΉμ§μ μλμ κ°λ€.
ν΄λμ€ λ³μ(Class Variable)
- staticμ λΆμ¬ μ μΈνλ©°, [ν΄λμ€μ΄λ¦].[λ³μμ΄λ¦] ννλ‘ μ¬μ©ν¨
- λͺ¨λ μΈμ€ν΄μ€κ° κ°μ μ μ₯곡κ°μ 곡μ ν¨
- ν ν΄λμ€μ λͺ¨λ μΈμ€ν΄μ€λ€μ΄ κ°μ κ°μ μ μ§ν΄μΌ νλ μμ±μ μ¬μ©λ¨
- μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ λ μ¬μ©ν μ μμ
μΈμ€ν΄μ€ λ³μ(Instance Variable)
- μΈμ€ν΄μ€ μμ±μ΄ μ νλμ΄μΌ ν¨
- μΈμ€ν΄μ€λ§λ€ λ 립μ μΈ κ³΅κ°μ μ¬μ©ν¨
μΉμ©μ°¨ κ°μ²΄λ₯Ό μμ±νλ CarλΌλ ν΄λμ€λ₯Ό μ μΈνλ€κ³ νμ. μ°¨λ§λ€ μ°λΉμ μμμ΄ μ κ°κ° λ€λ₯΄μ§λ§, λ°ν΄ μλ 4κ°λ‘ λμΌνλ€. μΈμ€ν΄μ€λ§λ€ λ€λ₯Έ κ°μ κ°μ§λ μ°λΉμ μμ μμ±μ μΈμ€ν΄μ€ λ³μλ‘, μΈμ€ν΄μ€κ° λͺ¨λ κ°μ κ°μ κ°μ§λ λ°ν΄ μλ ν΄λμ€ λ³μλ‘ μ μΈνλ©΄ λλ€. μ΄λ₯Ό μ½λλ‘ μμ±νλ©΄ λ€μκ³Ό κ°λ€.
class Car{
int gasMileage; // μ°λΉ
String color; // μμ
static int wheel = 4; // λ°ν΄ μ
}
π‘ λ©μλ
λ©μλλ νΉμ μμ μ μννλ μΌλ ¨μ λ¬Έμ₯λ€μ νλλ‘ λ¬Άμ κ², μ¦ ν¨μλ₯Ό μλ―Ένλ€. ν΄λμ€μμλ κΈ°λ₯μ λνλΈλ€.
λ°ννμ
λ©μλμ΄λ¦ (νμ
맀κ°λ³μλͺ
, νμ
맀κ°λ³μλͺ
) // μ μΈλΆ
{
// λ©μλ νΈμΆμ μνλ μ½λ
}
π€ λ©μλλ₯Ό μ¬μ©νλ μ΄μ ?
- μ¬μ¬μ©μ±μ΄ λμ(Reusability)
- μ€λ³΅λ μ½λμ μ κ±°
- νλ‘κ·Έλ¨μ ꡬ쑰ν
π μΈμμ 맀κ°λ³μ
- μΈμ(argument,μΈμ): λ©μλλ₯Ό νΈμΆν λ λ겨주λ κ°
- 맀κ°λ³μ(parameter): λ©μλλ‘ μΈμλ₯Ό μ λ¬ν΄μ£Όλ λ³μ
- argumentλ κ°, parameterλ λ³μ
맀κ°λ³μμ κ°μ΄ μ μ ν κ²μΈμ§ νμΈνμ. λ©μλ μ½λ μμ λΆλΆμμ 맀κ°λ³μμ μ ν¨μ±μ κ²μ¬ν΄μΌ μ μ νμ§ μμ κ°μ΄ λ€μ΄μμ λ μ¦κ°μ μ΄κ³ κΉλνκ² μμΈλ₯Ό λμ§ μ μλ€. μ μ ν κ°μΌλ‘ 보μ νκ±°λ, returnμΌλ‘ μμ μ€λ¨νκ³ νΈμΆν λ©μλλ‘ λμκ°λ μ‘°μΉλ₯Ό μ·¨ν μ μλ€.
Javaμμ λ©μλλ₯Ό νΈμΆνλ©΄ μΈμλ₯Ό 맀κ°λ³μμ 볡μ¬ν΄μ λ겨μ€λ€. μ΄ λ 맀κ°λ³μ νμ μ΄ κΈ°λ³Έν(primitive type)μ΄λ©΄ κ·Έ κ°μ΄ κ·Έλλ‘ λ³΅μ¬λκ³ μ°Έμ‘°ν(reference type)μ΄λ©΄ μΈμ€ν΄μ€μ μ£Όμκ° λ³΅μ¬λλ€.
κΈ°λ³Έν 맀κ°λ³μ | λ³μμ κ°μ μ½κΈ°λ§ ν μ μμ(read-only) |
μ°Έμ‘°ν 맀κ°λ³μ | λ³μμ κ°μ μ½κ³ λ³κ²½ν μλ μμ(read&write) β³ κ°μ΄ μ μ₯λ κ³³μ μ£Όμλ₯Ό μ μ μκΈ° λλ¬Έμ |
π ν΄λμ€ λ©μλ(static λ©μλ)μ μΈμ€ν΄μ€ λ©μλ
λ©μλ μ’ λ₯ | μ€λͺ | νΉμ§ |
ν΄λμ€ λ©μλ (=static λ©μλ) |
μΈμ€ν΄μ€μ κ΄κ³μλ λ©μλ μΈμ€ν΄μ€ λ³μλ μΈμ€ν΄μ€ λ©μλλ₯Ό μ¬μ©νμ§ μμ |
static, μΈμ€ν΄μ€ λ©μλμ λΉν΄ νΈμΆ μκ°μ΄ 짧μ |
μΈμ€ν΄μ€ λ©μλ | μΈμ€ν΄μ€ λ³μμ κ΄λ ¨λ μμ
μ νλ λ©μλ λ©μλμ μμ μ μννλ λ° μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©ν¨ |
μΈμ€ν΄μ€λ₯Ό μμ±μ΄ μ νλμ΄μΌ ν¨ |
π μ μν μ
- ν΄λμ€λ₯Ό μ€κ³ν λ λ©€λ² λ³μ μ€ λͺ¨λ μΈμ€ν΄μ€μ 곡ν΅μ μΌλ‘ μ¬μ©νλ κ²μλ staticμ λΆμΈλ€.
- ν΄λμ€ λ³μ(static λ³μ)λ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μμλ μ¬μ©ν μ μλ€.
- ν΄λμ€ λ©μλ(static λ©μλ)λ μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©ν μ μλ€.
- κ°μ ν΄λμ€ λ΄μμ ν΄λμ€ λ©€λ²κ° μΈμ€ν΄μ€ λ©€λ²λ₯Ό μ°Έμ‘°·νΈμΆν΄μΌ νλ κ²½μ° μΈμ€ν΄μ€ λ©μλλ‘ μμ±ν΄μΌ ν λ©μλλ₯Ό ν΄λμ€ λ©μλλ‘ μμ±ν κ²μ μλμ§ μ κ²ν΄μΌ νλ€.
- λ©μλ λ΄μμ μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©νμ§ μμΌλ©΄ staticμ λΆμ΄λ κ²μ κ³ λ €νλ€. → μ±λ₯ ν₯μ
π Reference
• Javaμ μ μ 3ν, λ¨κΆμ±, λμ°μΆν.
• μ΄νν°λΈ μλ° 3/E, μ‘°μμ λΈλ‘ν¬, νλ‘κ·Έλλ°μΈμ¬μ΄νΈ.
'Study > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] μμ±μ(constructor)λ? (2) | 2023.05.14 |
---|---|
[Java] μ€λ²λ‘λ©(overloading)κ³Ό κ°λ³μΈμ(varargs) (1) | 2023.05.14 |
[Java] ν΄λμ€λ? (0) | 2023.05.13 |