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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© anyanyhai 中级黑马   /  2012-3-26 14:30  /  1846 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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();

        }
}

3 个回复

正序浏览
private Person p ;   把类Person 当做类成员来使用,使用private 封装了,只能在本类中使用;

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

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

回复 使用道具 举报
private Person p ; 私有化一个成员的引用,superperson是对person功能的增强,所以先要有一个成员person,方便调用它的方法
SuperPerson sp = new SuperPerson(p); new一个superperson,将person传进来
回复 使用道具 举报
private Person p ;//成员变量一般用private修饰。
SuperPerson sp = new SuperPerson(p); //p作为一个参数传给了sp对象,sp就拥有了p中的方法功能。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马