我是第一次教 Scala,我的学生发现伴随对象中涉及的故意“双关语”非常令人困惑。考虑以下示例:
class Stack {
... methods such as push/pop
}
object Stack {
... factory method(s) and possibly others
}
当我使用诸如“堆栈对象”或“堆栈对象”或特别是“堆栈对象”之类的口头短语时,就会出现混淆。我的学生很难理解我是指单例对象 Stack 还是 Stack 类的对象。
我正在寻找替代方法来表达初学者可以更容易理解的内容。我一直考虑将 Stack 类的对象称为“堆栈实例”或“堆栈实例”,但是当试图教 OO 不能将这些东西称为对象时,这似乎很疯狂。在谈论单例对象 Stack 时,我一直在尝试始终使用短语“单例对象”或“伴随对象”,但 Scala 的语法在那里对我不利,因为它只使用“对象”一词。
在这种情况下,我可以重命名单例对象 StackFactory 而不是 Stack,但这只是我自己的类的一个选项,而不是已经内置在 Scala 中的一千零一个伴随对象。
编辑:
对不起,我的问题不够清楚。主要的混淆不是在引用伴随对象时发生。在这种情况下,正如一些人所指出的那样,使用诸如“伴生对象”之类的短语很容易。相反,主要的混淆发生在引用普通实例时。然后,如果我说“堆栈对象”(表示某个堆栈实例)或“堆栈对象”(表示这个特定实例),部分学生会认为我的意思是伴随对象——即使我没有使用词伴侣或单身人士。
而且我可以清楚地看到混淆的来源,因为“对象”一词仅与伴随对象一起出现在程序文本中。