Oop Tcl:比较类的实例
我正在写一个方法来比较同一类的两个对象。第二个对象作为参数传入。该方法首先调用当前对象上的私有方法Oop Tcl:比较类的实例,oop,tcl,Oop,Tcl,我正在写一个方法来比较同一类的两个对象。第二个对象作为参数传入。该方法首先调用当前对象上的私有方法CalcValue,必要时(只需执行一次)计算其数值并将其放入其私有变量value 如何对作为参数发送的对象执行相同的操作?如何访问该对象的privateCalcValue方法,然后访问它的privatevalue变量?我应该将该方法公开并为变量编写一个公共访问方法吗?我不知道您使用的是哪个面向对象的框架,因此我假设[incr Tcl]。如果希望第二个对象访问CalcValue方法,则需要将其公开。
CalcValue
,必要时(只需执行一次)计算其数值并将其放入其私有变量value
如何对作为参数发送的对象执行相同的操作?如何访问该对象的private
CalcValue
方法,然后访问它的privatevalue
变量?我应该将该方法公开并为变量编写一个公共访问方法吗?我不知道您使用的是哪个面向对象的框架,因此我假设[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
将失败