【发布时间】:2026-01-06 17:40:01
【问题描述】:
我在一个包中有 3 个课程。第一个类 (ClassStart) 分别生成其他 2 个类(ClassA 和 ClassB)的实例。我想通过其实例“a”调用ClassBClassA 的方法。
虽然实例“a”的范围是包(因为ClassStart 中的属性"ClassA a;" 行"a.showText()" 不起作用。它收到错误消息"a cannot resolved"。
所以我尝试了"s.a.showText()",但它不起作用,因为实例“s”是在静态方法中生成的,我不知道如何访问“s”。
第一类(包含主方法):
public class ClassStart {
ClassA a;
public static void main(String[] args) {
ClassStart s = new ClassStart();
}
public ClassStart() {
a = new ClassA();
ClassB b = new ClassB();
}
}
第二课:
public class ClassA {
public void showText() {
System.out.println("This text comes from ClassA.");
}
}
第三课:
public class ClassB {
public ClassB() {
a.showText();
}
}
如何在 ClassB 中调用 ClassA 的方法“showText()”?
(我在这个论坛上找过答案,但是我没有找到像这样的三级问题的答案。)谢谢你的回答。
【问题讨论】:
-
实例化
ClassB还是接收ClassB作为参数? -
a是ClassStart的一个方法。ClassB没有任何东西(任何符号)是a。 -
@DaveNewton:我希望实例“a”在 ClassB 的范围内,而不接收“a”作为参数。
@SJuan76:“a”不是 ClassStart 的方法,而是 ClassA 的一个实例。 -
好吧,它不是那样工作的,但你现在已经知道了。
标签: java class call static-methods