0
我在写一个方法来比较同一个类的两个对象。第二个对象作为参数传入。该方法首先调用当前对象的私有方法CalcValue
,如果需要(只需要做一次)计算它的数值并将其放入它的私有变量value
。Tcl:比较一个类的实例
我该如何对作为参数发送的对象做同样的事情?我如何访问该对象的私人CalcValue
方法,并稍后访问它的私人value
变量?我应该公开该方法并为该变量写一个公共访问方法吗?
我在写一个方法来比较同一个类的两个对象。第二个对象作为参数传入。该方法首先调用当前对象的私有方法CalcValue
,如果需要(只需要做一次)计算它的数值并将其放入它的私有变量value
。Tcl:比较一个类的实例
我该如何对作为参数发送的对象做同样的事情?我如何访问该对象的私人CalcValue
方法,并稍后访问它的私人value
变量?我应该公开该方法并为该变量写一个公共访问方法吗?
我不知道你使用了哪个面向对象的框架,所以我假设[incr Tcl]。如果您希望第二个对象访问它,则需要公开CalcValue
方法。下面是说明如何访问你的方法过于简单的例子:
package require Itcl
itcl::class Thing {
method CalcValue {} { return 999 }
method compare {otherThing} {
set myValue [CalcValue]
set otherValue [$otherThing CalcValue]
# Do something
}
}
# -------- MAIN: Create two instances and compare --------
Thing thing1
Thing thing2
thing1 compare thing2
如果CalcValue
是私有的,那么调用$otherThing CalcValue
将失败。