item 25 sijun - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
ํฑ๋ ๋ฒจ ํด๋์ค๋ ํ ํ์ผ์ ํ๋๋ง ๋ด์ผ๋ผ
์๋ฐ๋ ์์ค ํ์ผ ํ๋์ ์ฌ๋ฌ๊ฐ์ ํฑ๋ ๋ฒจ ํด๋์ค๋ฅผ ๋๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
ํ์ง๋ง, ์ปดํ์ผ ์์์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ๋ฐ์ ํ ์ ์์ผ๋ ํฑ๋ ๋ฒจ ํด๋์ค๋ ํ๋๋ง ๋์ด์ผ ํ๋ค.
// XX.java ๋ด ํฑ๋ ๋ฒจ ํด๋์ค๊ฐ ๋ ๊ฐ ์กด์ฌํ๋ ์ฝ๋ ์์
class A {
}
class B {
}
์๋ ์ฝ๋๋ Utensil ํด๋์ค์ Dessert ํด๋์ค์ Name ํ๋๋ฅผ ์ฐธ๊ณ ํ๋ค.
public class Main {
public static void main(String[] args){
System.out.println(Utensil.Name + Dessert.Name);
}
}
// Utensil.java ์์ค ํ์ผ ๋ด๋ถ
class Utensil {
static final String NAME = "pan";
}
class Dessert {
static final String NAME = "cake";
}
// Dessert.java ์์ค ํ์ผ ๋ด๋ถ
class Utensil {
static final String NAME = "pot";
}
class Dessert {
static final String NAME = "pie";
}
Utensil.java์ Dessert.java ํ์ผ์ด ์์ ๊ฐ์ด ์ ์๋์๋ค๊ณ ๊ฐ์ ํ๋ฉด ์ปดํ์ผ ์์์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ค.
-
javac Main.java Dessert.java
๋ก ์ปดํ์ผํ ๊ฒฝ์ฐMain.java
์ปดํ์ผ์ ์งํํ ๋Utensil
์ฐธ์กฐ๊ฐ ๋จผ์ ๋์ด์ผ๋ก ์ธํดUtensil
์์ค์ฝ๋ ๋ด๋ถ์์Utensil
๊ณผDessert
ํด๋์ค๋ฅผ ์ฐพ๊ฒ๋๋ค.Dessert.java
์ปดํ์ผ์ ์งํํ ๋๋ ์ด๋ฏธ ์ ์๋ ํด๋์ค๊ฐ Dessert.java๋ฅผ ์ปดํ์ผํ ๋ ์ด๋ฏธ ์กด์ฌํ๋ Utensil๊ณผ Dessert๋ฅด ์ธํด์ ์ปดํ์ผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค -
javac Main.java
๋javac Main.java Utensil.java
๋ก ์ปดํ์ผํ ๊ฒฝ์ฐpencake๋ฅผ ์ถ๋ ฅ
-
javac Dessert.java Main.java๋ก ์ปดํ์ผํ ๊ฒฝ์ฐ
potpie๋ฅผ ์ถ๋ ฅ
์ด๋ก์ธํด ํฑ๋ ๋ฒจ ํด๋์ค๋ฅผ ํ ํ์ผ์ ์ฌ๋ฌ๊ฐ ๋ด์ผ๋ฉด ์๋๋ค. ๊ตณ์ด ๋ด์์ผ ํ๋ค๋ฉด ์์ดํ 24์์ ๋ฐฐ์ด ๊ฒ์ฒ๋ผ ์ ์ ๋ฉค๋ฒ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ผ(์๋ ์ฝ๋ ์ฐธ์กฐ)
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";
}
}