gpt4 book ai didi

java - 从实例调用方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:36:06 25 4
gpt4 key购买 nike

假设我有两个类,AB,它们依次有一些方法,something()nothing( ) 并且 B 的实例在 A 中创建,如

public class A {

public A() {
B b = new B();
b.nothing();
}

public void something() {
...
}
}

A 调用 b.nothing() 都是标准的东西,但是有什么方法可以通过实例 b 调用 a.something(),假设 A 的实例称为 a。如果不是,为什么这概念上是错误的?

最佳答案

我不认为这有什么概念上的错误。

但是,为了使机制起作用,b 需要知道要在 A 的哪个实例上调用 something()。为此,B 的构造函数或其 nothing() 方法需要将 A 引用作为参数。

示例 1:

public class B {
public void nothing(A a) {
...
a.something();
...
}
}

示例 2:

public class B {
private final A a;
public B(A a) {
this.a = a;
}
public void nothing() {
...
this.a.something();
...
}
}

示例 3:

还有第三种方式,适用于某些情况。如果 BA 的内部类,则它具有对其关联的 A 实例的隐式引用。

public class A {
public void something() { ... }
public class B {
public void nothing() {
...
something();
...
}
}

关于java - 从实例调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7671073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com