Java - 类实例化和访问的基础知识

标签 java class instantiation

这是一个非常基本的问题,但我很想解释为什么我的问题可以或不能实现。

如果我有一个类(A),其中包含一个字符串,并且具有该字符串的 set 方法。我从第一个类(A)实例化另一个类(B),为什么我不能从新类(B)访问第一个类(A)来调用第一个类(A)中字符串的set方法)。

我问的唯一原因是我正在开发一个具有类似问题的项目,我从主类创建一个返回一些按钮的新类。当单击按钮时,主类中的 ActionListener 应该更改初始类中的字符串,但我似乎无法在不重新实例化该类的情况下访问原始类的 set 方法。

抱歉,如果这听起来很杂乱,但我真的很想了解为什么这是一个问题,以及正确的方法是什么。我知道我可能会因此被击落,但我们将不胜感激。

最佳答案

因为类 B 需要保存创建它的 A 实例的引用。没有正式的理由表明应该默认这样做。例如:

public class B {

    private final A creator; 

    public B(A creator) {
        // you might want to check for non null A
        this.creator = creator;
    }

    public void foo(String value) {
        creator.setText(value);
    }
}

关于Java - 类实例化和访问的基础知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9318956/

相关文章:

java - G1 收集器在 Full GC 事件后占用较长的年轻代(minor gc)暂停时间

java - 错误检查未注册

实例化时使用 new 关键字的 C++ 指针和引用

java - 对象方法调用可以和对象实例化同时进行吗?

java - Java 中是否有与 PHP 的 get_declared_classes() 等效的函数?

c# - 如何使用速记 C# 方式实例化一个类?

java - 添加代码作为库会增加应用程序的大小吗

java - Android 和 GSON 抛出 No-Args Constructor not found 异常

java - Servlet 参数和 doPut

python - 在 python 27 中,如何将带参数的方法传递给类的 __init__()?