2011-09-02 2 views
3

누군가 다음 구성을 이해하는 데 도움을 줄 수 있습니까? 이것이 이니셜 라이저인지 또는 익명 클래스인지 이해하는 데 문제가 있습니다. 이 구문에 익숙하지 않습니다.Java 초기화 블록

+0

가능한 복제 - http://stackoverflow.com/questions/6432545/is-this-a-variation-of-an-anonymous-inner-class – mre

답변

6

JTable을 확장하는 익명의 내부 클래스를 만들고 getCellRenderer 메서드를 재정의합니다.

긴 설명 :

당신이 명시 적으로 이름을 지정하지 않고 JTable의를 확장하는 클래스를 만드는 대신 표준 클래스 선언 사용 :

public class ExtendedJTable extends JTable{} 

이 클래스의 가시성이 내부 클래스로 제한됩니다 그것은 정의되고 인스턴스화된다. 예를 들어 게시 한 코드와 같이 특정 클래스 (JTable)의 메소드 (getCellRenderer())를 재정의해야 할 때 유용합니다. 일부 목적은 현재 클래스 컨텍스트로 제한됩니다.

이 접근법에는 몇 가지 이점과 몇 가지 제한 사항이 있습니다. 자세한 내용은 article을 참조하십시오.

2
당신은 여기에 두 가지 일을하는지

:

  • 이 JTable의를 확장하는 클래스의 객체를 생성합니다. 다른 곳에서는 별도로 선언되지 않았기 때문에 익명의 클래스입니다.
  • 이 클래스에서는, JTable의 getCellRenderer (int row, int column)의 Methods를 오버라이드 (override)합니다.