西游记分析

西游记:
          唐僧去西天取经,先后收了三个徒弟:孙悟空、猪八戒和沙和尚。
          路上,遇到了妖怪黄风怪。黄风怪抓走唐僧,准备吃掉长生不老。
          唐僧的徒弟们为了救唐僧,大战黄风怪,最终救出了师傅,前往西天求取真经。




分析:
          1)程序要处理的数据 – 名词
          2)数据的结构,数据之间的关系
          3)对这些数据要做哪些处理(操作)->功能  --动词
          4)执行流程


1、要处理的数据有哪些?
   和尚(唐僧,孙悟空、猪八戒和沙和尚),妖怪
   游戏当中的角色 -> 人(唐僧)   非人(孙悟空,猪八戒,沙和尚,妖怪)   -> 类类型
                    非人->超人:
                    非人->妖怪:
                    唐僧、孙悟空、猪八戒、沙和尚都是和尚类型 -> 设计为接口类型


2、这些数据的处理/功能有哪些?
   interface Monk{
        void pray();    //念经
   }


   class Actor{
        String name;


        Actor(){}
        Actor(String name){
            this.name = name;
        }
   }


   class Human extends Actor implements Monk{
        SuperMan[] tudis = new SuperMan[3];
        int number = 0;


        Human(){}
        Human(String name){
            super(name);
        }


        @Override
        public void pray(){}


        public void shouTudi(SuperMan tudi){
            System.out.println(this.name + "收了一个徒弟" + tudi.name);
            tudis[number++] = tudi;
        }


        public void help(){
            //.....
        }
        public void help(SuperMan tudi){
            //.....
        }


        @Override
        public String toString(){
            //......
        }
   }


   class NoHuman extends Actor{
        int level = 0;
        String weapon;


        NoHuman(){}
        NoHuman(String name,int level,String weapon){
            super(name);
            this.level = level;
            this.weapon = weapon;
        }
        
        void fly(){}
        void magic(){}
        void fight(NoHuman noHuman){}
   }


   class SuperMan extends NoHuman implements Monk
        Human shifu;    //师傅引用
        //get 和 set方法
        
        //构造器
        //....
        
        @Override
        public void pray(){}


        void save(Human shifu){}
   }


   class Monster extends NoHuman{
        boolean hasBackground;
        // get /set 方法


        //构造器
        
        //成员方法
        void eat(Human human){
        }


        void catch(Monk monk){
            //......
        }


        void run(){}
   }


   public class Test{
        public static void main(String[] args){
            System.out.println("---------------------------------");
            //1.向内存要空间,放要处理的数据->定义变量
            Human tanseng = new Human("唐僧");
            SuperMan sunwukong = new SuperMan("孙悟空",10,"金箍棒");
            SuperMan zhubajie = new SuperMan("猪八戒",7,"");
            SuperMan shaheshang = new SuperMan("沙和尚",5,"");
            Monster huangfengguai = new Monster("黄风怪",8,"");


            //2.处理数据。根据业务逻辑来处理数据
            System.out.println("----------人物出场-----------");
            System.out.println(tangseng);


            System.out.println("----------唐僧收徒弟-----------");
            tangseng.shouTudi(sunwukong);
            sunwukong.shifu = tangseng;
            //......


            System.out.println("----------妖怪抓唐僧-----------");
            


            //3.处理结果
        }
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值