2 cmf191734907 cmf191734907 于 2016.03.17 12:44 提问

怎么用一个对象调用另一个类中对象的方法

怎么用一个对象调用另一个类中对象的方法 比如一个类A
,一个类B,B里面有个方法show(),在main中A a=new A();B b=new B();在A中没有调用B方法的情况下,我想通过a调用B中的show()方法,该怎么实现。初学者,求大神给我指导下,不知道我表达的是否准确

5个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.17 12:53
已采纳

首先,确认下你是想在A类的某个方法中调用B类的方法吗?如果是的话,A必须依赖B,依赖方法可以是A类关联一个B类的成员变量,示例代码:

 public class A{
    private B b;
        public void setB(B b){
           this.b = b;
        }

        //A的某个方法调用B的方法
        public void methodA(){
            b.show();//调用B的某个方法
        }
}

也可以A类的方法调用时依赖一个B类型的参数:示例代码:

 public class A{
  //A的某个方法需要一个类型为B的参数
    public void methodA(B b){
       //通过参数B调用B类的方法
        b.show();
    } 
}

这是类与类之间相互关联的两种方式,即组合和依赖;组合,是指某个类中有另一个类的成员变量;依赖,是指某个的类的某个方法参数是另一个类。必须有关联的两个类之间才能调用另一个类的方法的。

cmf191734907
cmf191734907 恩,谢谢大神,明白了
一年多之前 回复
wojiushiwo945you
wojiushiwo945you 回复cmf191734907: 要想让a.b.shw()正确,就应该用第一种方法,a类有b类成员,然后提供getB()返回b,就可以a.getB().show()。
一年多之前 回复
wojiushiwo945you
wojiushiwo945you 回复cmf191734907: 我给的代码就是你要通过a来调用b的方法,必须让ab有关联才能调用啊。面向对象编程跟现实世界是一样的啊,你直接来个a.b.show()而a又没有关联b,当然不可能了啊
一年多之前 回复
wojiushiwo945you
wojiushiwo945you 回复cmf191734907: 为什么会有这样的想法呢?你可以直接new B().show()啊,a,b之间必须有关联才能通过a来调用b啊。
一年多之前 回复
cmf191734907
cmf191734907 我是想在一个新的类里面通过a来调用B的方法,错误的表示a.b.show(),不知道大神能否理解,我就想能不能通过什么格式实现
一年多之前 回复
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.17 12:53

首先,确认下你是想在A类的某个方法中调用B类的方法吗?如果是的话,A必须依赖B,依赖方法可以是A类关联一个B类的成员变量,示例代码:

 public class A{
    private B b;
        public void setB(B b){
           this.b = b;
        }

        //A的某个方法调用B的方法
        public void methodA(){
            b.show();//调用B的某个方法
        }
}

也可以A类的方法调用时依赖一个B类型的参数:示例代码:

 public class A{
  //A的某个方法需要一个类型为B的参数
    public void methodA(B b){
       //通过参数B调用B类的方法
        b.show();
    } 
}

这是类与类之间相互关联的两种方式,即组合和依赖;组合,是指某个类中有另一个类的成员变量;依赖,是指某个的类的某个方法参数是另一个类。必须有关联的两个类之间才能调用另一个类的方法的。

qq_30137777
qq_30137777   2016.03.17 12:56

你的意思是在类A中调用B的方法么?是的话,如果类A,B如果在同一个包内,show()方法没有static修饰,可直接使用b.show();调用这个方法。如果有修饰符static,可直接通过类名B直接调用方法,即B.show(),如果不在同一个包内,则需要给出包名路径。想通过a调用B中的show()方法,只能通过继承,A继承B,让A继承B中的方法,才能用A的对象调用show(),否则不能。

cmf191734907
cmf191734907 我是想在一个新的类里面通过a调B中的方法,直观的错误的a.b.show(),应该怎么写能实现这个想法
一年多之前 回复
enpterexpress
enpterexpress   2016.03.17 13:06

创建新对象,调用其方法

Royal_lr
Royal_lr   Ds   Rxr 2016.03.17 13:14

在一个对象中持有另一个对象的引用就行了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!