演習課題「内部クラスをインスタンス化してみよう」
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();