【问题标题】:Passing one class to another class using a constructor使用构造函数将一个类传递给另一个类
【发布时间】:2017-02-04 10:21:24
【问题描述】:

首先,我有 3 个班级。 Main 类名为“main”,一个 runnable 名为 StartRunnable,另一个 runnable 名为 Elimination Runnable。

只要当前游戏通过变量处于活动状态,EliminationRunnable 就会在恒定循环中运行

StartRunnable 运行在一个带有许多 thread.sleeps 的 for 循环上以执行不同的东西,并且 for 循环有一个称为“intCounterLoop”的计数器。它被声明为公共的。

主类同时为每个可运行对象创建一个新实例。

new Thread(new StartRunnable()).start();
new Thread(new EliminationRunnable(args[1])).start();

现在问题来了

如何从 StartRunnable 类访问 intCounterLoop 变量;在 EliminationRunnable 类中不使用静态?我不能使用静态,因为这些类的多个实例可能正在进行。

【问题讨论】:

    标签: java


    【解决方案1】:

    将您的 StartRunnable 实例存储在变量中,而不是直接在该参数列表中构造它。

    然后将实例作为参数传递给 EliminationRunnable 构造函数。这就是变量的用途。

    StartRunnable s = new StartRunnable();
    new Thread(s).start();
    new Thread(new EliminationRunnable(args[1], s)).start();
    

    然后,您可以根据需要访问任何您想要的公共内容。

    PS 您可以将字段设为公开并直接访问它,但我会将其设为私有并改为使用公共 getter 和 setter。如果您想更深入地挖掘,您可以在互联网上轻松找到相关论据。无论如何,您希望如何公开对它的访问超出了此答案的范围。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      相关资源
      最近更新 更多