재유's

[JAVA] Inner Class & Anonymous class 본문

IT Story/Java

[JAVA] Inner Class & Anonymous class

Stella_NY 2018. 12. 12. 09:51

Inner Class (내부 클래스)

  • 클래스 안에 또 다른 클래스를 포함시켜, 클래스의 구조를 내부적으로 확장하는 방법.
  • 클래스가 갖는 자료(=변수)의 계층화가 필요한 경우 사용.     ( = 상속의 일종 )
1
2
3
4
 public class HelloWorld{
     public class Korean { ... }
     public static class English { ... }
 }




  • 일반 inner class
객체를 생성하기 위해서 상위 클래스의 객체를 통한 접근이 필요하다.

1
2
HelloWorld h = new HelloWorld();
HelloWorld.Korean k = h.new Korean();



  •  static inner class

객체를 생성하기 위해서 상위 클래스의 객체가 필요하지 않고, 상위 클래스의 이름을 통해 접근한다.


1
HelloWorld.Korean k = new HelloWorld.Korean();





익명클래스


  • 인터페이스나 추상 클래스에 대한 상속없이 이름 없는 클래스 블록을 생성하여 사용하는 방법


1
2
3
4
5
6
7
8
9
10
11
public interface Foo(){
    public void bar();
}
 
    // 인터페이스는 선언은 가능하지만 할당을 위해서는 반드시 자식 클래스가 필요하다.
    // 익명클래스 방법은 일시적으로 사용될 임시 클래스를 정의하는 것으로 생각할 수 있다.
 
Foo f = new Foo(){
    @Override
    public void bar() {...}
};




'IT Story > Java' 카테고리의 다른 글

[JAVA] 정규 표현식 (Regular expression)  (0) 2018.12.14
[JAVA] 패키지(Package)  (0) 2018.12.12
[JAVA] For문 (반복문)  (0) 2018.12.11
[JAVA] 상속 (Inheritance)과 다형성(Polymorphism)  (0) 2018.12.11
[JAVA] 싱글톤 (SingleTon)  (0) 2018.12.11
Comments