如何从另一个类引用类中的方法(更多细节)

时间:2014-01-15 14:36:36

标签: java class oop

A类实例化其中的B类。 B级是无关的,不是孩子。 B类如何在A类中引用方法?

例如:

Class A
{
    public static void main(String[] args) 
    {
        B newClass = new B();
        // Call method from within B works no problem
        newClass.testMethod();
    }

    public void someImportantMethod()
    {
    }
}

但是在B类中,我怎么能从A类中调用方法,因为我没有引用它?我想我可以为A类创建另一个对象,如果我只需要调用方法,但我需要访问最初实例化B类的A类的相同实例

3 个答案:

答案 0 :(得分:2)

newClass.testMethod(this);

(在这种情况下你不能使用它,因为main()方法是静态的,但你明白了)

和B组:

public Stuff testMethod(A a) {
  a.someImportantMethod();
}

理想情况下,您可以将A参数作为接口引用,以减少这两个类之间的耦合。

答案 1 :(得分:1)

将类A的实例传递给B类的方法:

Class A
{
    public static void main(String[] args) 
    {
        B newClass = new B();
        newClass.testMethod(new A());
    }

    public void someImportantMethod()
    {
    }
}

答案 2 :(得分:0)

两个选项:

Class A
{
    public static void main(String[] args) 
    {
        B newClass = new B();
        // Call method from within B works no problem
        newClass.testMethod();
    }

    public static void someImportantMethod() //static method, accesible for any instance
    {
    }
}

class B {
    public B() { A.someImportantMethod();}
    ....
}

Class A
{
    public static void main(String[] args) 
    {
        A obj= new A()
        B newClass = new B(obj);
        // Call method from within B works no problem
        newClass.testMethod();
    }

    public void someImportantMethod()
    {
    }
}

class B {
    private A attr;
    public B(a obj) { a.someImportantMethod();}
    ....
}