questions - Modern-Java-in-Action/Online-Study GitHub Wiki
μ΅λͺ ν΄λμ€μ thisν€μλ μ€μ½ν @λ°νμ
public static class MeaningOfThis {
public final int value = 4;
public void doIt() {
int value = 6;
Runnable r = new Runnable() {
public final int value = 5;
@Override
public void run() {
int value = 10;
System.out.println(value);
System.out.println(this.value);
}
};
r.run();
}
}
10νμ run() λ©μλ λ΄λΆμ μ§μλ³μ valueλ₯Ό μΆλ ₯νλ μ½λλ₯Ό μΆκ°νμ΅λλ€. μ€νκ²°κ³Όλ μλμ κ°μ΅λλ€.
10
5
final ν€μλλ₯Ό μ¬μ©ν΄λ λ³μ μλμμ μΌμ΄λκ³ valueλ‘λ λ©μλ λ΄λΆ μ§μλ³μ(9ν)κ° νΈμΆλμ΄ 10μ μΆλ ₯ν©λλ€.
this.valueλ κ°μ₯ κ°κΉμ΄ μ€μ½νμ κ°μ²΄(Runnable) λ©€λ² λ³μ(4ν)μ μ κ·Όνμ¬ 5λ₯Ό μΆλ ₯ν κ²μ
λλ€.
μΆκ°λ‘, λλ€μμλ λ³μ μλμμ΄ μΌμ΄λμ§ μλλ€κ³ ν©λλ€.
λ³μ μλμ: λ§μΉ κ·Έλ¦Όμλ₯Ό λ리μ°λ―μ΄, μ€μ½νμ λ°λΌ μμ μ€μ½νμ λ©€λ²κ° νμ¬ μ€μ½νμ λ©€λ²μ μν΄ κ°λ €μ§λ κ²μ λ§ν¨.
int x = 50;
public void foo(){
int x = 10;
System.out.println(x); //κ²°κ³Όλ 10
}