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类的相同实例。
答案 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();}
....
}