演習課題「匿名クラスを使用してみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。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();
}