【问题标题】:Passing a class instance into another class将一个类实例传递给另一个类
【发布时间】:2013-08-02 20:07:03
【问题描述】:

我到处寻找,但似乎找不到答案。

如果我有一个类(比如资源类)和另一个类(比如 Sprite 类),并且每次创建精灵时,我都会传入对资源类的引用(因为某些功能需要它) -我的假设是否正确,所有这些都是创建对所述类的这个实例的引用?

所以 - 如果我的 Sprite 构造函数是这样的:

public Sprite(Resource res){

res.doSomething........

}

我创建了 100 个精灵,那么这不会引起问题,因为它只是传入一个引用或“指针”? (而不是每次都创建一个新实例)。

我知道的问题很简单,但我想确保我理解这里发生的事情,我无法在任何地方找到答案。

【问题讨论】:

  • 这很容易测试。只需要修改传入对象的成员数据变量,看看是否还有修改。
  • 你所有的假设都是正确的,是的。
  • 如果您每次实例化一个新的Sprite 时都使用相同的Resource,那么您将拥有一个用于每个精灵的Resource 对象。
  • 非常感谢大家 - @PaulRenton - 这是关于更改变量的一个好点!

标签: java class object pointers reference


【解决方案1】:

是的,如果您创建一个新的 Sprite 并将现有的 Resource 传递给它,那么新的 Sprite 将只引用您的原始对象。

所以 100 个 Sprite 将有 100 次引用您的 1 个资源。

【讨论】:

    【解决方案2】:

    是的,您必须每次都创建一个 new 类的实例来调用该特定 instance.doSomething()

    【讨论】:

      猜你喜欢
      • 2023-01-25
      • 2016-08-27
      • 1970-01-01
      • 2015-05-13
      • 1970-01-01
      • 2018-10-10
      • 2015-03-22
      • 2011-03-15
      • 1970-01-01
      相关资源
      最近更新 更多