Java日志第22天 2020.7.27

类作为成员变量类型

复制代码
public class Hero {

    private String name;
    private int age;
    private Weapon weapon;

    public Hero(){
    }

    public Hero(String name, int age, Weapon weapon) {
        this.name = name;
        this.age = age;
        this.weapon = weapon;
    }

    public void attack(){
        System.out.println(age+ "岁的" + name + "使用" + weapon.getWeaponName()+"进行攻击");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Weapon getWeapon() {
        return weapon;
    }

    public void setWeapon(Weapon weapon) {
        this.weapon = weapon;
    }
}
复制代码
复制代码
public class Weapon {

    private String weaponName;


    public Weapon(){
    }

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

    public String getWeaponName() {
        return weaponName;
    }

    public void setWeaponName(String weaponName) {
        this.weaponName = weaponName;
    }
}
复制代码
复制代码
public class DemoMain {

    public static void main(String[] args) {
        Hero hero = new Hero();

        hero.setName("亚瑟");
        hero.setAge(15);

        hero.setWeapon(new Weapon("大宝剑"));

        hero.attack();
    }
}
复制代码

结果如下:

 

 

接口作为成员变量类型

public interface Skill {
    public void realseSkill();
}
复制代码
public class Hero {
    private String name;
    private Skill skill;

    public Hero(){
    }

    public Hero(String name, Skill skill) {
        this.name = name;
        this.skill = skill;
    }

    public void attack(){
        System.out.print(name + "使用");
        skill.realseSkill();

        System.out.println("释放技能完成!");
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Skill getSkill() {
        return skill;
    }

    public void setSkill(Skill skill) {
        this.skill = skill;
    }
}
复制代码
复制代码
public class DemoMain {

    public static void main(String[] args) {
        Hero hero = new Hero();

        hero.setName("亚瑟");

        Skill skill = new Skill() {
            @Override
            public void realseSkill() {
                System.out.println("震雷削");
            }
        };
        hero.setSkill(skill);
        hero.attack();
    }
}
复制代码

 

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

复制代码
import java.util.ArrayList;
import java.util.List;

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

        list = addNames(list);

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }

    public static List<String> addNames(List<String> list){
        list.add("迪丽热巴");
        list.add("古力娜扎");
        list.add("马尔扎哈");
        list.add("沙扬娜拉");
        return list;
    }
}
复制代码

结果如下:

 

 

 

今天的内容很简单,但应用到以前的知识还是很多的遗忘,有些代码的过程有些模糊用法。

不能这样啊啊,还是要多多复习,熟练掌握用法,不能应用到稍微复杂的案例是就搞不清用法。

明天开始Object这个最高父类的学习了!

 

posted @   Gazikel  阅读(142)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示