gpt4 book ai didi

java - 访问Ruby中同一类的其他对象的成员变量

转载 作者:数据小太阳 更新时间:2023-10-29 08:02:14 26 4
gpt4 key购买 nike

在 Java 中我可以做到:

public boolean equals(Object other) {
return this.aPrivateVariable == ((MyClass)other).aPrivateVariable;
}

这使我可以在不破坏类封装的情况下定义相等性。我怎样才能在 Ruby 中做同样的事情?

谢谢。

最佳答案

在 ruby​​ 中,实例变量和私有(private)方法只能被对象本身访问,而不能被任何其他对象访问,无论它们属于什么类。 protected 方法可用于对象本身和同一类的其他对象。

因此,要执行您想要的操作,您可以为变量定义一个 protected getter 方法。

编辑:一个例子:

class Foo
protected
attr_accessor :my_variable # Allows other objects of same class
# to get and set the variable. If you
# only want to allow getting, change
# "accessor" to "reader"

public
def ==(other)
self.my_variable == other.my_variable
end
end

关于java - 访问Ruby中同一类的其他对象的成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1443600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com