演習課題「内部クラスをインスタンス化してみよう」
Skill
クラスが定義されています。この中に内部クラスとして、lightning
メソッドを持つSpell
クラスを定義してください。また、Skill
クラスのuse
メソッドから、Spell
クラスをインスタンス化し、lightning
メソッドを使用するコードを追加してください。
期待する出力値
ライトニング
演習課題「内部クラスを外からインスタンス化してみよう」
Skill
クラスが定義されています。この中に内部クラスとしてSpell
クラスが定義されています。Spell
クラスに定義されたlightning
メソッドを使用するため、Spell
クラスを外からインスタンス化し、Spell
クラスのlightning
メソッドを呼び出すコードを追加してください。
期待する出力値
ライトニング
演習課題「外側のクラスのインスタンス変数に内部クラスからアクセスしてみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。
外側のクラスであるSkill
クラス内のインスタンス変数enemy
にスライムを代入し、enemy
変数を呼び出す形でSpell
クラスに定義されたlightning
メソッドを、スライムにライトニングを放った
となるよう、コードを変更してください。
期待する出力値
スライムにライトニングを放った
演習課題「外側のクラスのメソッドを内部クラスから使用してみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。
外側のクラスであるSkill
クラス内のメソッドであるlearned
をSpell
クラスに定義されたlearnedSpell
メソッドを使って呼び出す形で、スキルを覚えた
となるよう、コードを変更してください。
期待する出力値
スキルを覚えた
演習課題「シャドーイングを確認してみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。
外側のクラスであるSkill
クラス内の変数、name
と同名の変数を内部クラスであるSpell
クラスで定義し、learned
メソッドの引数として与える形で呼び出すことで、スキルを覚えた
メガライトニングを覚えた
となるよう、コードを変更してください。
期待する出力値
スキルを覚えた
メガライトニングを覚えた
#08:内部クラス(Inner Classes)
このチャプターでは、内部クラス(Inner Classes)について学習します。
省略して記述すると次のようにも書けます。Outer.Inner i = (new Outer()).new Inner();