-
728x90
내부 클래스
- 장점
- 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.
- 코드의 복잡성을 줄일 수 있다(캡슐화)
public class innerEx1 { public static void main(String args[]){ innerEx1 test1 = new innerEx1(); System.out.println("test1.outIv" + innerEx1.StaticInner.scv); // 0 StaticInner test2 = new StaticInner(); System.out.println("test2 + " + test2.scv2 ); // 0 출력가능 } private int outerIv = 0; static int outerCv= 0; class InstanceInner{ int iiv = outerIv; // 외부 클래스의 private 멤버도 접근 가능하다 int iiv2 = outerCv; } static class StaticInner{ // int siv = outIv; 스태틱 클래스는 외부 클래스의 인스턴스 멤버에 접근할 수 없다. static int scv = outerCv; int scv2 = outerCv; } void myMethod(){ int lv = 0; final int LV=0; // final 생략가능 class LocalInner{ int liv = outerIv; int liv2 = outerCv; int liv3 = lv; int liv4 = LV; } } }
- Static 클래스
- static 키워드를 이용하여 이너 클래스를 생성하면 상위 클래스와 분리를 해준다.
- 상위 클래스가 생성되지 않아도, 외부에서 직접 객체를 생성할 수 있다.
```
728x90 - 장점