μμ€ νμΌμ νλμ ν±λ 벨 ν΄λμ€(ν±λ 벨 ν΄λμ€λ νμΌμ μ μλμ΄ μλ κ°μ₯ λ°κΉ₯μ μλ ν΄λμ€λ₯Ό λ§νλ€)λ₯Ό μ¬λ¬ κ° μ μΈνλλΌλ μ»΄νμΌν λλ λ¬Έμ κ° μλ€. μ ν¨ν λ¬Έλ²μ΄λΌλ κ²μ΄λ€.
νμ§λ§ μ΄κ²μ μλ¬΄λ° λμ΄ μμλΏλλ¬ μ¬κ°ν μνμ κ°μν΄μΌ νλ€. κ·Έ μ΄μ λ ν μμ€ νμΌμ ν±λ 벨 ν΄λμ€λ₯Ό μ¬λ¬ κ° μ μΈνλ©΄ μ»΄νμΌ μμμ λ°λΌ κ²°κ³Όκ° λ¬λΌμ§ μ μκΈ° λλ¬Έμ΄λ€.
λ¬Έμ μν©μ λν μμλ₯Ό μ΄ν΄λ³΄κ³ , ν΄κ²°μ± μ μμ보λλ‘ νμ.
1. λ¬Έμ μ π
μ§κΈ°(Utensil)μ λμ νΈ(Dessert) ν΄λμ€κ° Utensil.javaλΌλ ν νμΌμ μ μλμ΄ μλ€κ³ νμ.
// Utensil.java
class Utensil {
static final String NAME = "pan";
}
class Dessert {
static final String NAME = "cake";
}
μ΄λ° κ²½μ°μλ μλ μ½λκ° μλνλλ° λ¬Έμ κ° μλ€.
public class Main {
public static void main(String[] args) {
System.out.println(Utensil.NAME + Dessert.NAME); // pancake
}
}
νμ§λ§, Dessert.javaλΌλ νμΌμ μλμ κ°μ΄ λ§λ€μλ€κ³ νλ€λ©΄ μ»΄νμΌ μμμ λ°λΌμ λ¬Έμ κ° λ°μνλ€.
// Dessert.java
class Utensil {
static final String NAME = "pan";
}
class Dessert {
static final String NAME = "cake";
}
π 1. μ»΄νμΌ μμ(1)
- javac Main.java Dessert.java
μμ κ°μ μ»΄νμΌ μμλΌλ©΄ μμ£Ό μ΄μ΄ μ’κ²λ μ»΄νμΌ μ€λ₯κ° λ°μνκ³ μ»΄νμΌλ¬κ° Utensilκ³Ό Dessert ν΄λμ€λ₯Ό μ€λ³΅ μ μνλ€κ³ μλ €μ€ κ²μ΄λ€.
κ°μ₯ λ¨Όμ Main.javaλ₯Ό μ»΄νμΌνκ³ , κ·Έ μμμ Dessert μ°Έμ‘°λ³΄λ€ λ¨Όμ λμ€λ Utensil μ°Έμ‘°λ₯Ό λ§λλ©΄ Utensil.java νμΌμ μ΄ν΄ Utensilκ³Ό Dessertλ₯Ό λͺ¨λ μ°ΎμλΈλ€. κ·Έλ¦¬κ³ λ λ²μ§Έ λͺ λ Ήμ€ μΈμλ‘ λμ΄μ¨ Dessert.javaλ₯Ό μ²λ¦¬νλ €κ³ ν λ κ°μ ν΄λμ€μ μ μκ° μ΄λ―Έ μμμ μ μ μκΈ° λλ¬Έμ μ»΄νμΌ μ€λ₯κ° λ°μνλ€.
π 2. μ»΄νμΌ μμ(2)
- javac Main.java
λλ
- javac Main.java Utensil.java
μ΄λ° κ²½μ°μλ Dessert.javaλ₯Ό μ μνκΈ° μ μ μ΄ν΄λ³Έ κ²μ²λΌ pancakeλ₯Ό μΆλ ₯νλ€.
π 3. μ»΄νμΌ μμ(3)
- javac Dessert.java Main.java
νμ§λ§ μμ κ°μ μμλ‘ μ»΄νμΌλλ€λ©΄ potpieλ₯Ό μΆλ ₯νλ€.
μ¦, μ΄λ κ² μ΄λ μμ€ νμΌμ λ¨Όμ μ»΄νμΌνλλμ λ°λΌμ κ²°κ³Όκ° λ¬λΌμ§λ€.
ν±λ 벨 ν΄λμ€λ ν νμΌμ νλλ§ λ΄μμΌ νλ€.
2. ν΄κ²°μ± π
ν΄κ²°μ± μ κ°λ¨νλ€. ν±λ 벨 ν΄λμ€λ€(Utensilκ³Ό Dessert)μ μλ‘ λ€λ₯Έ μμ€ νμΌλ‘ λΆλ¦¬νλ κ²μ΄λ€.
λ§μ½ κ΅³μ΄ μ¬λ¬ ν±λ 벨 ν΄λμ€λ₯Ό ν νμΌμ λ΄κ³ μΆλ€λ©΄ μλμ κ°μ΄ μ μ λ©€λ² ν΄λμ€λ₯Ό μ¬μ©νλ λ°©λ²μ κ³ λ €ν΄ λ³Ό μ μλ€.
// ν±λ 벨 ν΄λμ€λ€μ μ μ λ©€λ² ν΄λμ€λ‘ λ°κΏλ³Έ λͺ¨μ΅
public class Test {
public static void main(String[] args) {
System.out.println(Utensil.NAME + Dessert.NAME);
}
private static class Utensil {
static final String NAME = "pan";
}
private static class Dessert {
static final String NAME = "cake";
}
}
λ€λ₯Έ ν΄λμ€μ λΈλ¦° λΆμ°¨μ μΈ ν΄λμ€λΌλ©΄ μ μ λ©€λ² ν΄λμ€λ‘ λ§λλ μͺ½μ΄ μΌλ°μ μΌλ‘ λ λμ κ²μ΄λ€. μ½κΈ° μ’κ³ , privateμΌλ‘ μ μΈνλ©΄ μ κ·Ό λ²μλ μ΅μλ‘ κ΄λ¦¬ν μ μκΈ° λλ¬Έμ΄λ€.