Maison  >  Article  >  Java  >  Résumé de l'utilisation des types de référence en Java

Résumé de l'utilisation des types de référence en Java

王林
王林avant
2019-11-30 15:31:431986parcourir

Résumé de l'utilisation des types de référence en Java

1. classe en tant que variable membre

Lors de la définition d'un rôle de classe (personnage du jeu), le code est comme suit :

Résumé de lutilisation des types de référence en Java

Utilisez le type int pour représenter l'identifiant du personnage et la valeur de santé, et utilisez le type String pour représenter le nom. À l’heure actuelle, String lui-même est un type référence Puisqu’il est utilisé comme une constante, son existence en tant que type référence est souvent ignorée. Si nous continuons à enrichir la définition de cette classe et à donner au rôle des attributs tels que l'équipement, comment allons-nous l'écrire ?

Tutoriels vidéo gratuits recommandés : Tutoriels vidéo Java gratuits

Définissez les classes d'armes qui augmenteront les capacités d'attaque :

Résumé de lutilisation des types de référence en Java

Définissez la classe d'armure à porter, qui augmentera la capacité de défense, c'est-à-dire augmentera la valeur de santé :

Résumé de lutilisation des types de référence en Java

Définissez la classe de personnage :

Résumé de lutilisation des types de référence en Java

Classe de test :

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

Astuce : Lorsqu'une classe est utilisée comme variable membre, lui attribuer une valeur revient en fait à lui attribuer un objet de la classe.

2. Interface en tant que variable membre

L'interface est une encapsulation de méthodes, correspondant au jeu, elle peut être considérée en tant que compétences de personnage de jeu étendues. Par conséquent, si nous souhaitons développer des compétences plus puissantes, nous pouvons ajouter des interfaces en tant que variables membres dans le rôle pour définir différentes compétences.

Définir l'interface :

Résumé de lutilisation des types de référence en Java

Définir la classe de rôle :

Résumé de lutilisation des types de référence en Java

Définir la classe de test :

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();
    }
}
输出结果:
发动法术攻击:纵横天下攻击完毕
发动法术攻击:逆转乾坤攻击完毕

Astuce : Nous utilisons une interface comme variable membre pour changer de compétence à tout moment. Cette conception est plus flexible et améliore l'expansion de la classe. programme sexe. Lorsqu'une interface est utilisée comme variable membre, l'opération d'affectation lui affecte en fait un objet de sous-classe de l'interface.

3. Interface comme paramètre de méthode et type de valeur de retour

Que faut-il transmettre lorsque l'interface est utilisée comme paramètre de méthode ? Lorsqu’une interface est utilisée comme type de valeur de retour d’une méthode, que faut-il renvoyer ? Oui, en fait, ce sont tous des objets de sous-classe.

Nous ne sommes pas étrangers à la classe ArrayList. En regardant l'API, nous constatons qu'il s'agit en fait d'une classe d'implémentation de l'interface java.util.List . Ainsi, lorsque nous voyons l'interface List comme un paramètre ou un type de valeur de retour, nous pouvons bien sûr transmettre ou renvoyer un objet ArrayList.

Veuillez respecter la méthode suivante : obtenez tous les nombres pairs d'un ensemble.

Définir la méthode :

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;
}

Méthode d'appel :

Résumé de lutilisation des types de référence en Java

Conseil : Lorsque l'interface est utilisée en paramètre, passez son objet de sous-classe. Lorsqu'une interface est utilisée comme type de valeur de retour, son objet de sous-classe est renvoyé.

Articles et tutoriels recommandés sur Java : Tutoriel d'introduction à Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer