黑马程序员技术交流社区

标题: 返回值类型 [打印本页]

作者: 悟能    时间: 2015-8-7 21:20
标题: 返回值类型
/*
        你去赌场.  
       
        发牌机给你发牌   

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

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


        返回值类型的问题


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

        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("搓麻是打牌的一种方式,杠开了最爽");
        }
}
作者: STARlove    时间: 2015-8-7 22:00
啊         看不了 。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2