对于我来说,这是一个关于学习面向对象方法的问题,因为它与VBA语法有关.假设我创建了几个类,如Car,Truck,Bus等.我创建了另一个类SpeedCalculator,我的车辆实例将实例化并包含.(作为一个新手,让我注意到这是一个很好的时间来宣布一个类是静态的而不是实例化它 - 哪个vba不能做我不认为.......)现在这个速度计算器将是没有简单的车速表.相反,它将根据温度,风速,RPM等计算速度 - 请与此一起,仅为了示例.
现在问题是所包含的对象如何收集其输入,这些输入仅在容器对象中可用(车辆对象可能实现接口(如果VBA甚至可以这样做......))."家长".是错的,我最终想通了,b/c parent-child是一个继承关系(VBA没有,再次),不是包含关系,包含对象的父是Excel应用程序(不是我的对象) .因此,如果有另一个关键字来引用容器属性,那似乎会很好.我希望我不会错过一些简单的事情.或者更多的情况是,这种引用会破坏面向对象的封装原则?
我想第二种方法是将容器传递给包含的,通过"Me"作为参数.但是你必须将所有包含的方法相乘,要么重载它们(如果VBA甚至可以这样做......),要么使用不同命名的版本 - 由于容器的类型不同(我们可以更理想化和避免声明为变体或"对象"?).
然后门#3将是最后一扇门,我猜?这将是一个(恼人的)一连串的争论.所有这些的定义往往会破坏我整洁的小计算器类的目的?