>  기사  >  Java  >  Java의 참조 유형 사용법 요약

Java의 참조 유형 사용법 요약

王林
王林앞으로
2019-11-30 15:31:432003검색

Java의 참조 유형 사용법 요약

1. 멤버 변수로 클래스

클래스 Role(게임 캐릭터) 정의 시 코드는 다음과 같습니다.

Java의 참조 유형 사용법 요약

int 타입을 사용하여 캐릭터 ID와 체력 값을 표현합니다. , 그리고 String 유형을 사용하여 이름을 나타냅니다. 이때 String 자체는 참조형으로서 상수처럼 사용되기 때문에 참조형으로서의 존재가 무시되는 경우가 많다. 계속해서 이 클래스의 정의를 풍부하게 하고 장비와 같은 역할 속성을 부여한다면 어떻게 작성할까요?

추천 무료 비디오 튜토리얼: 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;
}

Call 메서드:

Java의 참조 유형 사용법 요약

팁: 인터페이스가 매개변수로 사용되는 경우 해당 하위 클래스 개체를 전달하세요. 인터페이스가 반환 값 유형으로 사용되면 해당 하위 클래스 객체가 반환됩니다.

Java 관련 기사 및 튜토리얼 추천: Java 입문 튜토리얼

위 내용은 Java의 참조 유형 사용법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제