Java での参照型の使用法の概要

王林
リリース: 2019-11-30 15:31:43
転載
1938 人が閲覧しました

Java での参照型の使用法の概要

1. メンバ変数としてのクラス

クラス ロール (ゲーム キャラクター) を定義する場合、コードは次のようになります。

Java での参照型の使用法の概要

キャラクター ID とヘルス値を表すには int 型を使用し、名前を表すには String 型を使用します。このとき、String自体は参照型であり、定数のように扱われるため、参照型としての存在が無視されることが多い。このクラスの定義をさらに充実させ、装備などのRole属性を持たせた場合、どのように記述すればよいでしょうか。

無料ビデオ チュートリアルの推奨: Java 無料ビデオ チュートリアル

攻撃能力を高める武器クラスを定義します:

Java での参照型の使用法の概要

防御能力を高める、つまり健康値を増加させる着用防具クラスを定義します:

Java での参照型の使用法の概要

# キャラクタークラスを定義します:

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 のメンバー変数としてインターフェイスを追加して、さまざまなスキルを設定できます。

インターフェイスを定義します:

Java での参照型の使用法の概要

ロール クラスを定義します:

Java での参照型の使用法の概要

##テスト クラスの定義:

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 入門チュートリアル

以上がJava での参照型の使用法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!