A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 悟能 中级黑马   /  2015-8-7 21:20  /  280 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
        你去赌场.  
       
        发牌机给你发牌   

        分析: 定义 发牌机类     
                  定义 扑克类

                  发牌机有发牌的方法,获取到一张扑克牌


        返回值类型的问题


        类 : 实际要的是该类的对象
        抽象类: 实际要的是子类对象  
        接口:

        public Magic  getMagic(){
                return  Magic子类对象;
        }


        人使用发牌机来发牌  
       
        定义类 人, 人拿来一个发牌机


*/

class FaPaiJiTest{

        public static void main(String[] args){

                //创建对象

//                FaPaiJi  fpj = new FaPaiJi();
//                //调用发牌的方法,返回来一张扑克,那么我就用 Card接收
//
//                Card c = fpj.faPai();
//
//                c.jinHua();
//                System.out.println("---------------");
//                Pai pai = fpj.getPai();//调用发牌机的 getPai,返回值类型是 Pai 类型,那么我就用 Pai 接收
//                pai.shuang();
//                System.out.println();
//
//                System.out.println("---------------");
//                Magic m = fpj.getMagic();  //调用获取能变魔术的东西的方法
//                m.bianMoShu();



//                //创建对象  人  
//                Person p = new Person();
//                //人调用获取发牌机 ,获得了发牌机
//                FaPaiJi  fpj = p.getFaPaiJi();
//                //发牌机调用 发牌的方法,发出来 Card
//                Card c = fpj.faPai();
//                //Card 的 jinHua
//                c.jinHua();

                //链式编程
                new Person().getFaPaiJi().faPai().jinHua();
        }
}

class Person {

        //拿来发牌机方法

        /*
                两个明确 :
                        返回值类型 : FaPaiJi
                        参数列表 : 无
        */

        public  FaPaiJi getFaPaiJi(){
                System.out.println("发牌机来了~~~~~");
                return new FaPaiJi();
        }
}

//定义发牌机类
class FaPaiJi{

        /*
                获取牌的方法
                两个明确:
                        返回值类型: Card
                        参数列表 : 无
       
        */
        public Card faPai(){

                System.out.println("发牌开始发牌了.....");
                return new Card();
        }
        /*
                描述不清到底发的是什么牌 ,但是,你还得具体的拿到一个实实在在对象,所以就是Pai 子类对象  
        */
        public Pai getPai(){
                return new MaJiang();
        }


        /*
                发出来的东西,可以的神奇的功能

                两个明确 :
                        返回值类型  : Magic
                        参数列表:  无
        */

        public Magic getMagic(){
                return  new Card();
        }
}

interface Magic{
        public abstract void bianMoShu();
}
class Card implements Magic{
        public void jinHua(){
                System.out.println("三个花色一样,就是金花");
        }

        public  void bianMoShu(){
                System.out.println("神奇的纸牌,能变魔术,但是重点还是给谁变.....");
        }

}

abstract class Pai{
        //爽的方法
        public abstract void shuang();
}

class MaJiang extends Pai{
        public void shuang(){
                System.out.println("搓麻是打牌的一种方式,杠开了最爽");
        }
}

1 个回复

倒序浏览
啊         看不了 。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马