演習課題「匿名クラスを使用してみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。Braveクラスのuseメソッド内で、lightningメソッドをオーバーライドしながら実装した匿名クラスを定義してください。
匿名クラスはsとしてインスタンス化し、callLightningメソッドの引数に与えられます。
期待する出力値
ライトニング
演習課題「匿名クラスで外側のクラスのインスタンス変数を使用してみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。
匿名クラスをcallLightningメソッドの引数に与え、lightningメソッドをオーバーライドしながら実装し、enemy変数を使用することで、スライムにライトニングを放った
と出力するようコードを修正してください。
期待する出力値
スライムにライトニングを放った
演習課題「匿名クラスで外側のクラスのメソッドを使用してみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。
外側のクラスのメソッドであるslashメソッドを使用することで、ライトニングスラッシュ
と出力するようコードを修正してください。
期待する出力値
ライトニング
スラッシュ
演習課題「匿名クラスでローカル変数を使用してみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。
匿名クラスに実装されたlightningメソッドで、ローカル変数であるnameを使用して、ライトニング
と出力するようコードを修正してください。
なお、ローカル変数を使用する際に不要なコードがある場合は削除してください。
期待する出力値
ライトニング
演習課題「匿名クラスではコンストラクタを使用できないことを確認してみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。
匿名クラスに記述されたエラーの原因となるコードを発見し、正常に出力するようコードを修正してください。
期待する出力値
ライトニング
#10:匿名クラス(Anonymous Classes)
このチャプターでは、匿名クラス(Anonymous Classes)について学習します。
インターフェースであるフライアブルにはメソッドがひとつしかないため、匿名クラス式の代わりにラムダ式を使用することもできます。
実装すべきメソッドがひとつしかない場合は、ラムダ式を利用すると簡潔に記述することが可能です。public class Main {
    public static void main(String... args) {
        test(() -> System.out.println("fly"));
    }
    static void test(Flyable f) {
        f.fly();
    }
}
interface Flyable {
    void fly();
}