scope
νλ‘κ·Έλ¨μμμ μ¬μ©λλ λ³μλ€μ μ¬μ© κ°λ₯ν λ²μλ₯Ό κ°μ§λ€. κ·Έ λ²μλ₯Ό λ³μμ μ€μ½νλΌκ³ νλ€.
λ³μκ° μ μΈλ λΈλμ΄ κ·Έ λ³μμ μ¬μ©λ²μμ΄λ€.
public class ValableScopeExam{
int globalScope = 10; // μΈμ€ν΄μ€ λ³μ
public void scopeTest(int value){
int localScope = 10;
System.out.println(globalScope);
System.out.println(localScope);
System.out.println(value);
}
}
- ν΄λμ€μ μμ±μΌλ‘ μ μΈλ λ³μ globalScope μ μ¬μ© λ²μλ ν΄λμ€ μ 체 μ΄λ€.
- 맀κ°λ³μλ‘ μ μΈλ int value λ λΈλ λ°κΉ₯μ μ‘΄μ¬νκΈ°λ νμ§λ§, λ©μλ μ μΈλΆμ μ‘΄μ¬νλ―λ‘ μ¬μ©λ²μλ ν΄λΉ λ©μλ λΈλλ΄μ΄λ€.
- λ©μλ λΈλλ΄μμ μ μΈλ localScope λ³μμ μ¬μ©λ²μλ λ©μλ λΈλλ΄μ΄λ€.
mainλ©μλμμ μ¬μ©νκΈ°
- κ°μ ν΄λμ€ μμ μλλ° globalScope λ³μλ₯Ό μ¬μ© ν μ μλ€. μ μΌκΉ?
- mainμ΄ staticν λ©μλμ΄κΈ° λλ¬Έμ΄λ€.
- staticν λ©μλμμλ static νμ§ μμ νλλ₯Ό μ¬μ© ν μ μλ€.
public class VariableScopeExam {
int globalScope = 10;
public void scopeTest(int value){
int localScope = 20;
System.out.println(globalScope);
System.out.println(localScope);
System.out.println(value);
}
public static void main(String[] args) {
System.out.println(globalScope); //μ€λ₯
System.out.println(localScope); //μ€λ₯
System.out.println(value); //μ€λ₯
}
}
static
- main λ©μλλ static ν€μλκ° λΆμ΄μλλ°, μ΄λ° λ©μλλ₯Ό static ν λ©μλ λΌκ³ νλ€.
- μ§κΈκΉμ§ ν΄λμ€λ₯Ό μ μνκ³ newνμ§ μμλ λ©μΈ λ©μλκ° μ€νλμλ μ΄μ κ° static ν€μλ λλ¬Έμ΄λ€.
- ν€μλ staticμ μ¬μ©νλ©΄ μΈμ€ν΄μ€ν νμ§ μμλ μ¬μ©ν μ μλ€.
- static ν€μλλ₯Ό λΆμ΄λ©΄ main λ©μλκ° μΈμ€ν΄μ€νλμ§ μμλ staticν λ©μλλ staticν νλλ μ¬μ©ν μ μλ€.
- μ΄λ κ² staticν λ©μλλ κ°μ²΄λ₯Ό μμ±νμ§ μμλ μ¬μ©ν μ μκΈ° λλ¬Έμ staticν λ©μλ λ΄μμ staticνμ§ μμ νλλ μ¬μ©ν μ μλ€.
- μλνλ©΄, staticν λ©μλκ° μ¬μ©νλ μμ μ ν΄λΉ ν΄λμ€κ° μΈμ€ν΄μ€ν λμ§ μμμ μλ μκΈ° λλ¬Έμ΄λ€.
- ν΄λμ€λ λΆμ΄λΉ΅μ ν κ°μ μ‘΄μ¬λ‘ λͺ¨λ ν΄λμ€λ μΈμ€ν΄μ€ν νμ§ μμ μ±λ‘ μ¬μ©ν μ μλ€. λΆμ΄λΉ΅μ νμ΄ λΆμ΄λΉ΅κ³Ό κ°μ§ μμ κ²κ³Ό κ°μ μ΄μΉμ΄λ€.
- λ°λλ‘ staticν λ³μλ€μ staticνμ§ μμ λ©μλ λ΄μμ μ¬μ©νλ κ²μ λ¬Έμ κ° λμ§ μλλ€.
public class VariableScopeExam {
int globalScope = 10;
static int staticVal = 7;
public void scopeTest(int value){
int localScope = 20;
}
public static void main(String[] args) {
System.out.println(staticVal); //μ¬μ©κ°λ₯
}
}
- κ·Έλ λ€λ©΄, main λ©μλκ°μ staticν λ©μλ λ΄μμ staticνμ§ μμ λ³μλ€μ μ¬μ©νλ €λ©΄ μ΄λ»κ² ν΄μΌ ν κΉ?
- μλμ²λΌ κ°μ²΄λ₯Ό μμ±νκ³ μ¬μ©νλ©΄ λλ€.
ValableScopeExam v1 = new ValableScopeExam();
ValableScopeExam v2 = new ValableScopeExam();
v1.golbalScope = 20;
v2.golbalScope = 30;
System.out.println(v1.golbalScope); //20 μ΄ μΆλ ₯λλ€.
System.out.println(v2.golbalScope); //30μ΄ μΆλ ₯λλ€.
v1.staticVal = 10;
v2.staticVal = 20;
System.out.println(v1.statVal); //20 μ΄ μΆλ ₯λλ€.
System.out.println(v2.statVal); //20 μ΄ μΆλ ₯λλ€.
- staticν λ³μλ€μ κΈ°μ΅ν΄μΌν μ μ΄ μλ€.
- μΈμ€ν΄μ€ λ³μλ€μ ν΄λμ€μ λν μΈμ€ν΄μ€λ³μκ° μμ±λ λ globalScopeλΌλ 곡κ°μ΄ λ³κ°λ‘ μμ±λκ³ , λκ°μ΄ νλ λ μμ±μ ν΄λ³΄λ©΄ κ°μ²΄ μμ λ³κ°μ globalScope μ μ₯ 곡κ°μ΄ μμ±λλ€.
- λ°λ©΄ static λ³μμ κ°μ λ£μ΄λ³΄λ©΄ κ°μ΄ 곡μ λλ κ²μ μ μ μλ€.
- staticν νλλ μΈμ€ν΄μ€ μμ±μμ λ§λ€μ΄μ§λ κ²μ΄ μλκ³ , κ°μ μ μ₯ν μ μλ 곡κ°μ΄ νλλ°μ μλ€.
- κ°μ 곡μ νλ€. λ°λΌμ μ΄λ° λ³μλ₯Ό ν΄λμ€ λ³μλΌκ³ νλ€.
- ν΄λμ€ λ³μ : static ν λ³μ, staticValκ°μ staticν νλλ₯Ό ν΄λμ€ λ³μλΌκ³ νλ€.
- staticνκ² μ μΈλ λ³μλ κ°μ μ μ₯ν μ μλ 곡κ°μ΄ νλλ§ μμ±λλ€. κ·Έλ¬λ―λ‘, μΈμ€ν΄μ€κ° μ¬λ¬κ° μμ±λλ staticν λ³μλ νλλ€.
- κ°μ μ μ₯ν μ μλ 곡κ°μ΄ νλλ°μ μμ΄μ κ°μ 곡μ νλ€.
- 'μΈμ€ν΄μ€_μ΄λ¦(λ νΌλ°μ€).λ³μλͺ 'μ΄ μλλΌ ν΄λμ€ μ΄λ¦μ μ§μ μ¬μ©νλ κ²μ΄ κ°λ₯νλ€.
- 'ν΄λμ€μ΄λ¦.ν΄λμ€λ³μλͺ ' μ΄ λ°©λ²μ΄ μ‘°κΈ λ λ°λμ§νλ€κ³ ν μ μλ€.
- VariableScopeExam.staticVal
- μΈμ€ν΄μ€ λ³μ : globalScope κ°μ λ³μ. μΈμ€ν΄μ€κ° μμ±λ λ μμ±λκΈ° λλ¬Έμ μΈμ€ν΄μ€ λ³μλΌκ³ νλ€.
μ°Έκ³
'π > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] μΆμ ν΄λμ€ vs μΈν°νμ΄μ€ (0) | 2021.08.18 |
---|---|
[Java] Java SE, Java EE, Java ME (0) | 2021.08.18 |
[Java] κ°λΉμ§ 컬λ μ (Garbage Collection) (0) | 2021.08.11 |
[Java] λλ€μ (0) | 2021.08.10 |
[Java] μ€νΈλ¦Ό Stream (0) | 2021.07.28 |
λκΈ