分别定义变量、域、对象(用下标标识是在第几行创建的对象),实例域和指针(变量和实例对象的并),以及指向关系。× 表示笛卡尔积。
pt(p)
代表的是指针 p
可能指向的对象(p
的指针集),如下示例,pt(p)
可能指向的目标可以记为 o2,o4
(以行号作为 object
的下标)。
if(...){
x = new A();
} else {
x = new B();
}
看到 new
语句,将新建对象加入 pt(x)
,此时 x
可能还指向其它对象。
看到 assign
语句,将 y
指向的对象加入 x
的指针集中,或者说,使 x
指向 y
指向的对象。
同理。