每个对象实例化Modelica类的变量。
有人可以澄清这个陈述吗?
答案 0 :(得分:2)
首先,Modelica只有一种类型的对象,类和其他对象(模型,记录,包)只是具有限制的特殊类型的类。这意味着每个对象必须遵循相同的规则,因此我将引用对象类,但我将编写的内容将应用于每个Modelica对象。 每个对象实例化变量意味着如果你有一个类似下面的Modelica类:
partial class MySimpleClass
Real variable1;
equation
variable1 = time;
end MySimpleClass;
在 instanceOfTypeMySimpleClass 中声明成员变量(如 MySimpleClass )时:
class mySecondClass
MySimpleClass instanceOfTypeMySimpleClass;
MySimpleClass instanceTwoOfTypeMySimpleClass;
Real variable1;
equation
variable1 = instanceOfTypeMySimpleClass.variable1;
instanceTwoOfTypeMySimpleClass.variable1 = 3;
end mySecondClass;
您声明了一个实例变量。每次创建类的实例时,Modelica编译器都会为实例的每个类的实例变量创建一个副本,这由对象完成。您可以使用语法<instanceName>.<VariableName>
从对象访问对象的实例变量。
Modelica编译器为每个实例分配一次类变量。 Modelica编译器每次遇到该类的实例时都会为类变量分配内存。因此,所有实例 DID NOT 共享类的类变量的相同副本,例如,对于Java中的静态类。换句话说,在本例中, instanceOfTypeMySimpleClass.variable1 和 instanceTwoOfTypeMySimpleClass.variable1 是两个不同的变量。
“每个对象实例化Modelica类的变量。”意在描述这种差异。
我希望这有帮助, 马可