์ค์ฒฉ ์ธํฐํ์ด์ค
ํด๋์ค ๋ด๋ถ์ ์ ์ธํ ์ธํฐํ์ด์ค
์ค์ฒฉ ์ธํฐํ์ด์ค(Nested Interface)๋ ๋ค๋ฅธ ์ธํฐํ์ด์ค๋ ํด๋์ค ๋ด๋ถ์ ์ ์ธ๋ ์ธํฐํ์ด์ค๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ฐ์ ๊ฐ์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฝ๋์ ์บก์ํ์ ๊ตฌ์กฐํ๋ฅผ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
์ค์ฒฉ ์ธํฐํ์ด์ค์ ํน์ง
โข
์ค์ฒฉ ์ธํฐํ์ด์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก static ํน์ฑ์ ๊ฐ์ง๋๋ค.
โข
static ํค์๋๋ฅผ ๋ช
์์ ์ผ๋ก ์ ์ธํ์ง ์์๋ ์ปดํ์ผ๋ฌ๊ฐ ์๋์ผ๋ก static์ ์ถ๊ฐํฉ๋๋ค.
โข
์ธํฐํ์ด์ค์ ๊ตฌํ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋๋ '์ธ๋ถํด๋์ค.์ค์ฒฉ์ธํฐํ์ด์ค' ํํ์ ํ์
์ ์ฌ์ฉํฉ๋๋ค.
์ค์ฒฉ ์ธํฐํ์ด์ค์ ์์
class OuterClass {
// ์ค์ฒฉ ์ธํฐํ์ด์ค
public interface NestedInterface {
void nestedMethod();
}
}
// ์ค์ฒฉ ์ธํฐํ์ด์ค ๊ตฌํ
class ImplementingClass implements OuterClass.NestedInterface {
@Override
public void nestedMethod() {
System.out.println("์ค์ฒฉ ์ธํฐํ์ด์ค์ ๋ฉ์๋ ๊ตฌํ");
}
}
Java
๋ณต์ฌ
์ค์ฒฉ ์ธํฐํ์ด์ค์ ํ์ฉ
์ค์ฒฉ ์ธํฐํ์ด์ค๋ ์ฃผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ํฉ์์ ์ฌ์ฉ๋ฉ๋๋ค:
โข
ํน์ ํด๋์ค์ ๊ฐํ๊ฒ ์ฐ๊ด๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ ๋
โข
API ์ค๊ณ ์ ๊ด๋ จ ๊ธฐ๋ฅ์ ๋
ผ๋ฆฌ์ ์ผ๋ก ๊ทธ๋ฃนํํ ๋
โข
์ฝ๋ฐฑ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํ ๋
โข
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋ ์์ํฌ ๊ฐ๋ฐ ์ ๋ช
ํํ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ ๋