μΆμ²
ChatGPT
λ‘컬 ν΄λμ€(Local Class)λ λ©μλ λ΄λΆμ μ μλ ν΄λμ€μ΄λ€. λ‘컬 ν΄λμ€λ λ©μλ λ΄μμλ§ μ¬μ©λλ©°, κ·Έ λ©μλμ μ€μ½νμ μ νλλ€. μ΄ ν΄λμ€λ λ©μλκ° νΈμΆλ λλ§λ€ μλ‘κ² μμ±λλ©°, λ©μλ νΈμΆμ΄ λλλ©΄ μλ©Έλλ€.
λ‘컬 ν΄λμ€μ λ©λͺ¨λ¦¬ λ‘λ λ° μμ± κ³Όμ
1. λ‘컬 ν΄λμ€μ μ μ λ° μμ±
λ‘컬 ν΄λμ€λ λ©μλ λ΄μμ μ μλλ€. λ©μλκ° νΈμΆλ λ λ‘컬 ν΄λμ€μ μ μκ° λ©λͺ¨λ¦¬μ λ‘λλλ€. μ΄λ λ‘컬 ν΄λμ€λ λ©μλμ μ€μ½νμ ν¨κ» λ©λͺ¨λ¦¬μ λ‘λλλ©°, λ©μλ νΈμΆμ΄ λλλ©΄ λ©λͺ¨λ¦¬μμ ν΄μ λλ€.
2. ν΄λμ€ λ‘λ© (ν΄λμ€ λ 벨)
- λ‘컬 ν΄λμ€λ λ©μλμ λ‘컬 μ€μ½ν λ΄μμ μ μλκΈ° λλ¬Έμ, λ©μλκ° νΈμΆλ λλ§λ€ λ‘컬 ν΄λμ€μ Class κ°μ²΄κ° λ©λͺ¨λ¦¬μ λ‘λλλ€. μ΄ Class κ°μ²΄λ λ©μλμ μ€ν νλ μμ μ μ₯λλ€.
- λ‘컬 ν΄λμ€λ λ©μλ μμμμ λ‘λλμ§ μλλ€. λμ , λ©μλκ° νΈμΆλ λλ§λ€ μλ‘μ΄ λ‘컬 ν΄λμ€ μΈμ€ν΄μ€κ° μμ±λλ€. μ΄ ν΄λμ€μ λ©νλ°μ΄ν°λ λ©μλμ μ€ν νλ μκ³Ό μ°κ²°λλ€.
3. μΈμ€ν΄μ€ μμ± (μΈμ€ν΄μ€ λ 벨)
- λ‘컬 ν΄λμ€μ μΈμ€ν΄μ€λ λ©μλκ° μ€νλ λ μμ±λλ€. λ‘컬 ν΄λμ€μ μΈμ€ν΄μ€λ μΌλ°μ μΈ μλ° κ°μ²΄μ λ§μ°¬κ°μ§λ‘ ν μμμ μ μ₯λλ€. ν μμμ κ°μ²΄λ₯Ό μ μ₯νλ λ©λͺ¨λ¦¬ 곡κ°μΌλ‘, ν΄λμ€μ μΈμ€ν΄μ€μ κ΄λ ¨λ λ°μ΄ν°(μ: νλ κ°, λ©μλ μ°Έμ‘° λ±)λ₯Ό μ μ₯νλ€.
4. λ©μλ μ€ν νλ μμ λ©μλ νΈμΆ μ 보 μ μ₯ (μΈμ€ν΄μ€ λ 벨)
- λ©μλμ μ€ν νλ μμλ λ©μλ νΈμΆμ λν μ 보λ₯Ό μ μ₯νλ€. μ΄ μ 보μλ λ‘컬 λ³μ, λ©μλ νΈμΆ μ€ν, κ·Έλ¦¬κ³ λ‘컬 ν΄λμ€μ μΈμ€ν΄μ€μ λν μ°Έμ‘°κ° ν¬ν¨λ μ μλ€. μ¦, λ‘컬 ν΄λμ€μ μΈμ€ν΄μ€ μ체λ νμ μ μ₯λμ§λ§, κ·Έ μΈμ€ν΄μ€μ λν μ°Έμ‘°λ λ©μλμ μ€ν νλ μμ μ μ₯λλ€.
μμ
public class OuterClass {
private String outerField = "Outer Field";
public void outerMethod() {
final String localVariable = "Local Variable";
class LocalClass {
void printValues() {
System.out.println(outerField); // μΊ‘μ²λ μΈμ€ν΄μ€ λ³μ
System.out.println(localVariable); // μΊ‘μ²λ λ‘컬 λ³μ
}
}
LocalClass localClassInstance = new LocalClass();
localClassInstance.printValues();
}
}
- λ‘컬 ν΄λμ€ μ μ: LocalClassλ outerMethod λ΄μμ μ μλλ€.
- ν΄λμ€ λ‘λ©: outerMethod νΈμΆ μ, LocalClassμ Class κ°μ²΄κ° λ©λͺ¨λ¦¬μ λ‘λλλ€.
- μΈμ€ν΄μ€ν: LocalClassμ μΈμ€ν΄μ€κ° λ©μλ μ€ν λμ μμ±λλ€.
ChatGPT κΈμ μΆμ²
μΆμ²
ν΄λμ€ μ μμ λ‘λ©μ κ΄ν κ°λ μ λ€μ μλ£λ€μμ μμΈν νμΈν μ μμ΅λλ€:
- Oracle Java Documentation:
- Java Language Specification (JLS): ν΄λμ€μ μ μμ λ©λͺ¨λ¦¬ κ΄λ¦¬μ λν 곡μμ μΈ μ€λͺ μ΄ ν¬ν¨λμ΄ μμ΅λλ€.
- Class Loading: μλ° ν΄λμ€ λ‘λ©μ μ리μ κ³Όμ μ λν μ€λͺ μ΄ ν¬ν¨λμ΄ μμ΅λλ€.
- Effective Java (by Joshua Bloch):
- μλ°μ ν΄λμ€μ λ©λͺ¨λ¦¬ ꡬ쑰μ λν μ¬λ μλ μ€λͺ μ μ 곡νλ©°, λ‘컬 ν΄λμ€μ κ΄λ ¨λ κ°λ λ λ€λ£Ήλλ€.
μ΄ μλ£λ€μ μλ°μμμ ν΄λμ€ μ μ λ° λ‘λ© κ³Όμ μ λν΄ κΉμ΄ μ΄ν΄νλ λ° λμμ μ€ κ²μ λλ€.
'λΉ κ΅¬λ© μ±μ°κΈ°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] Static Nested Classμ λ©λͺ¨λ¦¬ λ‘λ λ° μμ± (0) | 2024.08.19 |
---|---|
[Java] Member inner classμ λ©λͺ¨λ¦¬ λ‘λ λ° μμ± (0) | 2024.08.19 |
[Java] Anonymouse classμ λ©λͺ¨λ¦¬ λ‘λ λ° μμ± (0) | 2024.08.19 |
[Java] "λ³μμ λ©μλλ₯Ό μΊ‘μ²νλ€" μλ―Έ (0) | 2024.08.19 |
[μ©μ΄][Java] ν΄λ‘μ (Closure) (0) | 2024.08.19 |