Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

우주코딩

익명 클래스, 익명 클래스의 생성자 호출 본문

자바 본 강의

익명 클래스, 익명 클래스의 생성자 호출

우주코딩 2021. 8. 17. 20:18

익명클래스

인스턴스를 한 번 만 생성할 것이라면, 로컬 클래스로 정의하는 것 보다 익명 클래스로 정의하는 것이 더 낫다.
=> 특히 객체를 사용하려는 곳에 바로 익명 클래스를 정의하면 읽기 쉽기 때문에 소스 코드를 유지보수 하기가 더 좋다.

익명 클래스로 인터페이스 구현하기

인터페이스명 레퍼런스 = new 인터페이스명() {};

  • 호출하는 생성자는 수퍼 클래스의 생성자이다.

익명 클래스로 인터페이스 구현하기

수퍼클래스 레퍼런스 = new 수퍼클래스() {};

  • 호출하는 생성자는 수퍼 클래스의 생성자이다.

익명클래스 생성자 호출

익명 클래스는 생성자를 직접 정의할 수 없다. 그러나 컴파일러가 컴파일할 때 익명 클래스의 생성자를 만든다. 대신 인스턴스 블록으로 생성자를 대신한다.

  • 인스턴스 블록에 작성한 코드는 결국 컴파일러가 자동 생성한 생성자에 들어간다.
  • 그래서 인스턴스 블록에 작성한 코드가 실행될 것이다.
  • 물론 그전에 먼저 수퍼 클래스의 생성자가 실행될 것이다.

익명 클래스를 정의할 때 호출할 수퍼 클래스의 생성자를 지정할 수 있다.

  • 문법:
    new 수퍼클래스명(파라미터,...) {}
  • 즉 생성자에 넘겨주는 파라미터로 호출될 생성자를 지정한다.

1) 수퍼 클래스의 기본 생성자 호출하기
A obj = new A() {};
obj.print();

2) 수퍼 클래스의 다른 생성자 호출하기

  • 다음과 같이 익명 클래스의 인스턴스를 만들 때 값을 지정하면 그 타입의 값을 받는 수퍼 클래스의 생성자가 호출된다.
    obj = new A("홍길동") {};
    obj.print();
Comments