java 其他成员变量类型

类当成员变量类型

package Sha.day;

public class Weapon {
    private String code;

    public Weapon(String code) {
        this.code = code;
    }

    public Weapon() {
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }
}
package Sha.day;

public class Hero {//用类当成员变量类型
    private Weapon weapon;

    public Hero(Weapon weapon) {
        this.weapon = weapon;
    }
    public void x(){
        System.out.println(weapon.getCode());//调用时的定义
    }

    public Hero() {
    }

    public Weapon getWeapon() {
        return weapon;
    }

    public void setWeapon(Weapon weapon) {
        this.weapon = weapon;
    }
}

class G{
    public static void main(String[] args) {
//        使用时先创建对象
        Hero hero = new Hero();
        Weapon weapon = new Weapon("傻逼");//武器对象
        hero.setWeapon(weapon);//给private Weapon weapon赋值
        hero.x();

    }
}

接口当成员变量类型

package Sha.day;

public class Hero {//用接口当成员变量类型
    private Skill skill;

    public Hero(Skill skill) {
        this.skill = skill;
    }
public void x(){
    skill.use();
}
    public Hero() {
    }

    public Skill getSkill() {
        return skill;
    }

    public void setSkill(Skill skill) {
        this.skill = skill;
    }
}

class G{
    public static void main(String[] args) {
//        使用时先创建对象
//        Hero hero = new Hero();
//        Skill weapon = new Skill() {
//            @Override
//            public void use() {
//                System.out.println("haojiah");
//            }
//        };
//        hero.setSkill(weapon);
//
//hero.x();

//        简化,同时使用匿名内部类和匿名对象,实在不懂可以和什么对照看
        Hero hero = new Hero();
        hero.setSkill(new Skill() {
            @Override
            public void use() {
                System.out.println("miao");
            }
        });
        hero.x();
    }
}
package Sha.day;


public interface Skill {
    void use();
}

接口作为方法的参数和返回值

package Sha.day;

import java.util.ArrayList;
import java.util.List;

public class DemoInterface {
    public static void main(String[] args) {
        //左边是接口名称 右边是实现类名  这就是多态
        List<String> c = new ArrayList<>();

      List<String> result = ab(c);//把c接收到的数据传给它
        for (int i = 0; i < result.size(); i++) {
            System.out.println(result.get(i));
        }
    }
    public static List<String> ab(List<String> c){//不能使用非静态的方法
        c.add("j");
        c.add("g");
        c.add("a");
        c.add("e");
        return c;//返回给c
    }
}
posted @ 2022-03-30 19:04  Tzeao  阅读(40)  评论(0)    收藏  举报