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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Person1{
        int age=2;
        Person2 p2=new Person2(this);
}

class Person2{
        Person1 p1;
        public Person2(Person1 p1){
        this.p1=p1;
        }
        void say1(){
        System.out.println(p1.age);
        }
}

public class This
{
        public static void main(String[] args)
        {
                Person2 p2=new Person2();
                p2.say1();
        }
}
各路大神,求问:
上述代码,Person2我通过构造方法想将person1的实例化对象传入,然后调用Person1中的age变量,结构不知道怎么在Person1类中去写,报错了。希望指点迷津。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

5 个回复

正序浏览
class Person1{         int age=2; }  class Person2{         Person2(Person1 p1){         p1=new Person1();          }         void say1(){         System.out.println(p1.age);         } }  public class This {         public static void main(String[] args)         {                 Person2 p2=new Person2();                 p2.say1();         } }
回复 使用道具 举报
唉,我对this这一块,对象这一部分也晕乎乎的
回复 使用道具 举报
my_heima 发表于 2014-3-26 09:45
感谢关注,如果继承的话,Person2就直接可以使用Person1中的成员了,不需要通过构造方法初始化传入Person ...

这样可以,之前忘记在main调用p2时传入p1的参数了

class Person1{
        int age=2;
}

class Person2{
        Person1 p1;
        public Person2(Person1 p1){
        this.p1=p1;
        }
        void say1(){
        System.out.println(p1.age);
        }
}

public class This
{
        public static void main(String[] args)
        {
                Person1 p1=new Person1();
                Person2 p2=new Person2(p1);
                p2.say1();
        }
}
回复 使用道具 举报
awkflf11 发表于 2014-3-25 18:17
你想调用p1的age:

你可以这样写:Person2  继承Person1的:

感谢关注,如果继承的话,Person2就直接可以使用Person1中的成员了,不需要通过构造方法初始化传入Person1的对象。
回复 使用道具 举报
你想调用p1的age:

你可以这样写:Person2  继承Person1的:
class Person1{
        int age=2;
        Person2 p2=new Person2(this);
}

class Person2 expends Person1{
        Person1 p1;
        public Person2(Person1 p1){
        super.p1=p1;
        }
        void say1(){
        System.out.println(p1.age);
        }
}


然后再写
public class This
{
        public static void main(String[] args)
        {
                Person2 p2=new Person2();
                p2.say1();
        }
}


评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马