[JAVA] 중첩클래스(Nested Class)
필그램
·2017. 6. 17. 18:52
중첩클래스란, 클래스 내부에 선언한 클래스를 말한다.
장점으로는 1)두 클래스의 멤버들을 서로 쉽게 접근할 수 있다는 장점과 2)외부에 불필요한 관계를 감출수 있어 복잡성을 줄인다.
또한 한곳에서만 사용되는 클래스를 논리적으로 묶어 처리할 필요가 있을때 Static Nested Class를 사용하며, 캡슐화가 필요할때는 Inner Class를 이용한다.
모바일을 개발할때 이 중첩클래스의 익명객체를 이용하여 적용하게 되므로 매우 중요한 개념이다.
기본적인 개념으로는 아래와 같다.
Outer가 외부 클래스이고 Nested가 중첩(Nested)클래스 이다.
class Outer { class Nested { } }
예제를 보면 다음과 같다.
A.java 클래스를 만들고
public class A {
A() {System.out.println("A객체 made");}
class B {
B() {
System.out.println("B Object made ");}
int field1;
void method1() {}
//static void method2() {}
}
static class C {
C() {System.out.println("C Object made");}
int field1;
static int field2;
void method1() {}
static void method2() {}
}
void method() {
class D {
D() {System.out.println("D Object made");}
int field1;
void method1() {}
}
D d = new D();
d.field1 = 3;
d.method1();
}
}
실행 클래스는 아래와 같다
public class Main {
public static void main(String[] args) {
A a = new A();
A.B b = a.new B();
b.field1 = 3;
b.method1();
A.C c = new A.C();
c.field1 = 3;
c.method1();
A.C.field2 = 3;
A.C.method2();
a.method();
}
}
'프로그래밍 > 모바일: iOS, Java, Android, Swift' 카테고리의 다른 글
[JAVA] 스택과 큐(Stacks and Queues) 알아보기(1) (0) | 2017.07.14 |
---|---|
안드로이드 프로그래밍 : 버튼만드는법 2가지 (0) | 2017.07.13 |
안드로이드 프로그램 기본 정리 (0) | 2017.07.11 |
자바(JAVA) 공부에 좋은 동영상 추천 (0) | 2017.07.10 |
자바, 안드로이드 추천 도서(초보자용) (0) | 2017.07.03 |