Skip to content

28 类的身份 ​

类变量可以指向同一个实体,也可以指向字段看似相同的不同实体。

norm
class Counter {
  Integer value
}

main() {
  Counter first = Counter(value: 2)
  Counter alias = first
  Counter equalFields = Counter(value: 3)
  alias.value = 3
  printLine(first.value)
  printLine(first == alias)
  printLine(first == equalFields)
}

预期输出:

text
3
true
false

alias 和 first 指向同一对象,因此通过别名写入会把 first.value 改为三。另行构造的对象字段也为三,但身份不同。

动手试试:改为 equalFields = first,预测最后一次比较。

详细规则:参考。

Norm 0.25