黑马程序员技术交流社区

标题: 装饰设计模式的例子的问题 [打印本页]

作者: anyanyhai    时间: 2012-3-26 14:30
标题: 装饰设计模式的例子的问题
class Person
{
        public void chifan()
        {
                System.out.println("吃饭");
        }
}

class SuperPerson
{
        private Person p ;             \\对此句很迷惑?解释这句的作用,为什么要这样用。
        SuperPerson(Person p)
        {
                this.p = p;
        }
        public void superChifan()
        {
                System.out.println("开胃酒");
                p.chifan();
                System.out.println("甜点");
                System.out.println("来一根");
        }
}
class  PersonDemo
{
        public static void main(String[] args)
        {
                Person p = new Person();
                                SuperPerson sp = new SuperPerson(p);    \\还有这句的作用?
                sp.superChifan();

        }
}
作者: 黄奇耀    时间: 2012-3-26 14:40
private Person p ;//成员变量一般用private修饰。
SuperPerson sp = new SuperPerson(p); //p作为一个参数传给了sp对象,sp就拥有了p中的方法功能。

作者: 田斌    时间: 2012-3-26 14:44
private Person p ; 私有化一个成员的引用,superperson是对person功能的增强,所以先要有一个成员person,方便调用它的方法
SuperPerson sp = new SuperPerson(p); new一个superperson,将person传进来

作者: 陈建凡    时间: 2012-3-26 15:16
private Person p ;   把类Person 当做类成员来使用,使用private 封装了,只能在本类中使用;

SuperPerson sp = new SuperPerson(p); 实例化  SuperPerson ,创建了一个sp 对象,然后通过构造函数,把p erson p = new Person() 的对象 p 当做 参数 传递给 sp的成员变量 p

你只要把这个当做一般的变量就可以 理解了






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