「局所(ローカル)クラス」や「匿名クラス」といったメソッド内のクラスの作り方と、使い方を紹介します。
「局所クラス(ローカルクラス)」は、ローカル変数のように、メソッド内でクラス宣言を行い、そのメソッド内でクラスを使う方法です。
public void method() {
// 「局所クラス(ローカルクラス)」の宣言
class In {
}
// オブジェクトを作成
In in = new In();
}
「匿名クラス(無名内部クラス)」は、局所クラスの一種です。
メソッド内でオブジェクトの作成をしつつ、その後に「{ }」を加えることで、そのクラスのサブクラスを一時的に作り、メソッドのオーバーライドなどを行います。
public void method() {
// 「匿名クラス(無名内部クラス)」からオブジェクトを作成
MyClass mc = new MyClass() {
// メソッドをオーバーライド
@Override
public void method() {
System.out.println("MethodAnonymous");
}
};
}
┏匿名クラス━━━━━━━━━┓ ┃┏MyClass ━┓ ┃ MyClass mc = new ┃┃ ┃ ┃@Override ┃┃ ┠─×method() ┠─○method() ┃┗━━━━━┛ ┃ ┗━━━━━━━━━━━━━━┛
この匿名クラスは、インターフェースの実装などでもよく使われます。
JButton btn = new JButton();
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// クリック時の処理
}
});