1. メンバ変数としてのクラス
クラス ロール (ゲーム キャラクター) を定義する場合、コードは次のようになります。
キャラクター ID とヘルス値を表すには int 型を使用し、名前を表すには String 型を使用します。このとき、String自体は参照型であり、定数のように扱われるため、参照型としての存在が無視されることが多い。このクラスの定義をさらに充実させ、装備などのRole属性を持たせた場合、どのように記述すればよいでしょうか。
無料ビデオ チュートリアルの推奨: Java 無料ビデオ チュートリアル
攻撃能力を高める武器クラスを定義します:
防御能力を高める、つまり健康値を増加させる着用防具クラスを定義します:
# キャラクタークラスを定義します:
テストクラス:
public class Test { public static void main(String[] args) { // 创建Weapon 对象 Weapon wp = new Weapon("屠龙刀", 999999); // 创建Armour 对象 Armour ar = new Armour("麒麟甲", 10000); // 创建Role 对象 Role r = new Role(); // 设置武器属性 r.setWeapon(wp); // 设置盔甲属性 r.setArmour(ar); // 攻 击 r.attack(); // 穿戴盔甲 r.wear(); } } 输出结果: 使用屠龙刀,造成999999点伤害 穿上麒麟甲 ,生命值增加10000
ヒント: クラスがメンバー変数として使用される場合、それに値を割り当てることは、実際にはそのクラスのオブジェクトを割り当てることになります。
2. メンバ変数としてのインターフェイス
インターフェイスは、ゲームに対応するメソッドをカプセル化したものと考えることができます。キャラクターのスキルを拡張したゲームとして。したがって、より強力なスキルを拡張したい場合は、Role のメンバー変数としてインターフェイスを追加して、さまざまなスキルを設定できます。
インターフェイスを定義します:
ロール クラスを定義します:
##テスト クラスの定義:
public class Test { public static void main(String[] args) { // 创建游戏角色 Role role = new Role(); // 设置角色法术技能 role.setFaShuSkill(new FaShuSkill() { @Override public void faShuAttack() { System.out.println("纵横天下"); } }); // 发动法术攻击 role.faShuSkillAttack(); // 更换技能 role.setFaShuSkill(new FaShuSkill() { @Override public void faShuAttack() { System.out.println("逆转乾坤"); } }); // 发动法术攻击 role.faShuSkillAttack(); } } 输出结果: 发动法术攻击:纵横天下攻击完毕 发动法术攻击:逆转乾坤攻击完毕
ヒント: スキルをいつでも変更できるように、メンバー変数としてインターフェイスを使用します。この設計はより柔軟であり、拡張性が強化されています。番組のセックス。インターフェイスがメンバー変数として使用される場合、それに値を割り当てることは、実際にはインターフェイスのサブクラス オブジェクトを割り当てることになります。
3. メソッドのパラメータとしてのインターフェイスと戻り値の型
インターフェイスをメソッドのパラメータとして使用する場合、何を渡す必要がありますか?メソッドの戻り値の型としてインターフェースを使用した場合、何を返さなければなりませんか?はい、実際、それらはすべてそのサブクラス オブジェクトです。 ArrayList クラスについては馴染みがありませんが、API を見ると、実際にはjava.util.List インターフェイスの実装クラスであることがわかります。したがって、List インターフェイスをパラメータまたは戻り値の型として見ると、当然ながら ArrayList オブジェクトを渡したり返したりすることができます。
public static List<Integer> getEvenNum(List<Integer> list) { // 创建保存偶数的集合 ArrayList<Integer> evenList = new ArrayList<>(); // 遍历集合list,判断元素为偶数,就添加到evenList中 for (int i = 0; i < list.size(); i++) { Integer integer = list.get(i); if (integer % 2 == 0) { evenList.add(integer); } } /* 返回偶数集合因为getEvenNum方法的返回值类型是List,而ArrayList是List的子类, 所以evenList可以返回 */ return evenList; }
## ヒント: インターフェイスが次のように使用される場合パラメータ、そのサブクラスオブジェクトを渡します。インターフェイスが戻り値の型として使用される場合、そのサブクラス オブジェクトが返されます。
おすすめの Java 関連記事とチュートリアル:
Java 入門チュートリアル以上がJava での参照型の使用法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。