java - 停留在 Java 中的对象范围

标签 java oop

我正在通过一个练习来理解 Java,基本上我需要将两个类的功能合并到一个应用程序中。

虽然我被困在一个领域 - 跨类引用对象。

我所做的是在一个类 (test1) 中设置一个 gui,它在 ie 中有一个文本字段。

chatLine = new JTextField();

在另一个类 (test2) 中,我计划将所有功能保留在那里并引用在 test1 中设置的各种 gui 元素 - 就像这个 test1.chatLine

我理解这个级别的引用,我通过在 test2 类中设置一个测试方法来测试这个

public static void testpass() {

        test1.testfield.setText("hello");
    }

不过,我正在尝试了解如何在 test2 类中实现更复杂的功能,特别是这个现有代码;

test1.chatLine.addActionListener(new ActionAdapter() {
            public void actionPerformed(ActionEvent e) {
               String s = Game.chatLine.getText();
               if (!s.equals("")) {
                  appendToChatBox("OUTGOING: " + s + "\n");
                  Game.chatLine.selectAll();

                  // Send the string
                  sendString(s);
               }
            }
         });

这是我坚持的一点,如果我应该能够做到这一点 - 因为它在编译时失败了,我可以将 actionadapter 东西添加到位于 test1 中的 gui 元素中,但是从 test2 执行此操作 -我想知道我是否正在尝试做一些不可能的事情。

希望这是有道理的,我对此很困惑 - 我正在尝试了解范围和引用的工作原理。

理想情况下,我想要实现的是一个类,其中包含所有主要内容,gui 等,然后是另一个类中的所有相关功能,并将结果等定位到第一个类的 gui 元素。

非常感谢任何想法。

最佳答案

如果您首先可以访问 chatLine,则可以调用它的(公共(public))方法,包括 addActionListener。要直接访问 chatLine,您需要将其设置为public,并且如果您想让它特定于类(与不同的 chatLine 相对) > 对于类的每个实例),它需要是static

但是请注意,通常最好不要公开变量。首先拥有类和对象的一个​​重要原因是封装。您可能会考虑通过将其设为私有(private)并仅提供更高级别的公共(public)方法来访问所需内容来将实现隐藏在类中,例如不要公开“原始”JTextField,而是公开您使用它提供的功能。

关于java - 停留在 Java 中的对象范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2552322/

相关文章:

Java//循环某些扫描仪输入x次并空打印

java - 在 FilteredTree 中搜索 "hidden Data"

c# - 在 C# 中继承接口(interface)

PHP 优化这是正确的吗?

java - 具有多个接口(interface)的类

PHP:我应该传入并返回这些变量吗?

php - 在 OO 上下文中建模更改

java - PulleyJoint 奇怪的行为 Box2D

java - jsf中的网页认证

java - 打开和关闭数据库