Java基础(九)

综合案例

    此前我们已经练习了根据集合当中的字符串对象读写文件,而本综合案例主要练习根据集合当中的自定义对象来读写文件。

场景介绍

    很多网络游戏当中都有组队模式,例如魔兽世界、DotA、英雄联盟(LOL)、王者荣耀等,均为5人组队进行游戏。即使在现实生活中,打麻将、斗地主也都是多人进行的游戏。那么对于多人组队的游戏,典型的场景为:

    1.有5个人都在玩游戏;

    2.这5个人组成一个队伍;

    3.这支队伍进行游戏;

    4.队伍成员彼此欣赏,决定以后还要组队一起玩;

    5.一段时间后大家再次组队游戏。

分析整体思路

     

 

 

 

实现

  框架代码

//自定义一个类,代表英雄

public class Hero {

    //成员变量

    private String name;   //名字

    private int attack;    //英雄的攻击力

    private String type;   //英雄的类型

   

    public Hero() {

    }

   

    public Hero(String name, int attack, String type) {

        this.name = name;

        this.attack = attack;

        this.type = type;

    }

   

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public int getAttack() {

        return attack;

    }

    public void setAttack(int attack) {

        this.attack = attack;

    }

    public String getType() {

        return type;

    }

    public void setType(String type) {

        this.type = type;

    }

}

 

//测试类

public class Test {

    public static void main(String[] args) {

        //1.首先创建一个集合,用来存储五个英雄

        ArrayList<Hero> list = new ArrayList<>();

       

        //2.读文件,把数据加到集合当中.

        System.out.println("加载文件的数据到集合当中.");

        //list.add(new Hero());    //假设已经从文件当中加载得到了数据,并且加入集合当中

       

        //3.判断一下集合当中有没有内容,是不是新的?

        boolean isNew = list.size() == 0; //如果集合的长度为0,说明这是新的队伍

        System.out.println("这是不是新队伍:" +isNew);

       

        //如果是新的队伍,没有人,就需要创建五个对像加入到集合当中

        if(isNew) {

            System.out.println("创建5个对象加入集合中.");

        }

        //如果不是新的队伍,已经有人了,就不需要创建了.

       

        System.out.println("我们队伍的阵容是:");

        //遍历集合,输出其中的每一个对象的具体信息

        System.out.println("循环5次进行遍历");

       

       

        //统计一下总和战斗力是多少.

        int totalAttack = 0;   //稍后在计算

        System.out.println("我们队伍的总战斗力是:" + totalAttack);

       

        //判断一下集合是不是新的

        if(isNew) {

            System.out.println("将集合的数据写到文件中.");

        }

        //如果集合不是新的,而是从文件中加载得到的数据,就什么都不用做

        System.out.println("退出游戏");

    }

}

 

英雄问世(创建对象)

  在测试类mian方法外添加方法

/*

     * 定义一个方法,用来向集合当中添加五位英雄.三要素: 返回值类型: 参数集合是引用类型,形式参数的操作会影响实际参数,所以不需要返回值,void 方法名称:

     * addFiveHeros 参数列表: ArrayList<Hero>

     */

    public static void addFiveHeros(ArrayList<Hero> list) {

        // 英雄信息来自于键盘输入(Scanner)

        Scanner sc = new Scanner(System.in); // 创建一个Scanner用来进行键盘输入

 

        for (int i = 1; i <= 5; i++) { //循环5次

            //键盘输入英雄的三个信息

            System.out.println("请输入第" + i + "英雄的名字:");

            String name = sc.next();   //获取字符串

            System.out.println("请输入第" + i + "英雄的攻击力:");

            int attack = sc.nextInt(); //获取int数字

            System.out.println("请输入第" + i + "英雄的类型:");

            String type = sc.next();

           

            Hero hero = new Hero(name,attack,type);   //创建一个英雄对象

            list.add(hero);    //把英雄对象添加到集合当中

        }

    }

 

main方法对应的地方调用方法进行添加

    </

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值