Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,如何在另一个类中创建类的对象,反之亦然?_Java - Fatal编程技术网

在java中,如何在另一个类中创建类的对象,反之亦然?

在java中,如何在另一个类中创建类的对象,反之亦然?,java,Java,我设计了一个GUI,它有一个jTextArea。在这个类中,我可以很容易地将文本附加到这个类中。但我还想从其他类的方法中向其添加文本 为此,我将jTextArea公开,并在另一个类中创建该类的对象。现在我可以在执行其他类中的方法时写入jTextArea 但事实证明,我需要一个类的方法,我在GUI类中创建了一个对象。当我这么做的时候,StackOverflower错误发生了。我该怎么办?在AutomatedActions类中,不必使用new关键字初始化BTDBattletsbot对象,而可以添加一

我设计了一个GUI,它有一个jTextArea。在这个类中,我可以很容易地将文本附加到这个类中。但我还想从其他类的方法中向其添加文本

为此,我将jTextArea公开,并在另一个类中创建该类的对象。现在我可以在执行其他类中的方法时写入jTextArea


但事实证明,我需要一个类的方法,我在GUI类中创建了一个对象。当我这么做的时候,StackOverflower错误发生了。我该怎么办?

AutomatedActions
类中,不必使用
new
关键字初始化
BTDBattletsbot
对象,而可以添加一个参数化构造函数,该构造函数将
BTDBattletsbot
对象作为参数,并在此构造函数中初始化对象。像下面这样

  public class AutomatedActions {
    ...............
   private final BTDBattlesBot botWindow = null;

   // Below is the parametrized constructor
   public AutomatedActions(BTDBattlesBot botWindow) {
   botWindow = this.botWindow;
  }

 ..........
}

然后在
btdbattletsbot
类中,在创建
AutomatedActions
类的对象时,调用新创建的参数化构造函数,并使用
this
关键字传递
btdbattletsbot
类的当前对象,而不是调用默认构造函数。通过这样做,你应该能够实现你想要的

class BTDBattlesBot {
......
AutomatedActions action = new AutomatedActions(this);
......
}

将第一个类的引用传递给第二个类的构造函数,并保存该引用。我不是java的专家。你能告诉我如何保存参考资料吗。。。?谢谢。既然你已经有了一个JTextArea实例,为什么还要创建另一个呢?@AmanChhabra,我在AutomatedActions类中没有一个JTextArea实例,它也在另一个包中。。。