Java 从子对象访问父对象的最佳方式

Java 从子对象访问父对象的最佳方式,java,oop,jruby,Java,Oop,Jruby,我正在JRuby中创建一个群体遗传学模拟系统 我创建了诸如等位基因、基因、生物体、种群等类 一个种群对象包含多个生物体对象(在一个数组中),每个生物体对象包含多个基因,等等 目前,很容易知道,例如,某个生物体的基因对象是什么。然而,如果我只有一个基因对象,我不知道它属于什么生物 我想到的一个解决方案是: attr_accessor :name, :parent def initialize(name, parent) @name = name @parent = parent #pare

我正在JRuby中创建一个群体遗传学模拟系统

我创建了诸如等位基因、基因、生物体、种群等类

一个种群对象包含多个生物体对象(在一个数组中),每个生物体对象包含多个基因,等等

目前,很容易知道,例如,某个生物体的基因对象是什么。然而,如果我只有一个基因对象,我不知道它属于什么生物

我想到的一个解决方案是:

attr_accessor :name, :parent
def initialize(name, parent)
  @name = name
  @parent = parent #parent will be the parent object
end
如果我这样做,@parent仅仅是对内存中父对象的引用,还是一个全新的对象

这是最好的方法吗?还有其他更好的方法吗


谢谢

正如您所建议的,JRuby将只保留对对象的引用,而不是创建对象的副本


这是处理这个问题的一个非常明智的方法。您正在保留对要引用的对象的引用

正如您所建议的,JRuby将只保留对对象的引用,而不是创建对象的副本


这是处理这个问题的一个非常明智的方法。您正在保留对要引用的对象的引用

FWIW:我认为这完全是一个JRuby问题,而你的其他标签有点不相关。您的问题本质上归结为“@parent=parent是否复制引用或整个对象”,答案完全取决于JRuby的语义。(在Java中,答案是:复制引用,但我不知道JRuby,所以我无法回答您的实际问题。)FWIW:我认为这完全是一个JRuby问题,而您的其他标记是不相关的。您的问题本质上归结为“@parent=parent是否复制引用或整个对象”,答案完全取决于JRuby的语义。(在Java中,答案是:您复制了引用,但我不知道JRuby,因此无法回答您的实际问题。)