1.这里第一个需要注意的事项是Mutability与Immutability,也就是可变与不变性。
immutable类型的变量一旦被创建出来之后,其值就不能再被改变了。在编写程序时,对于可以用final关键词修饰这种变量。所以,由此我觉得,在我之后的实际编程中,应该使用final变量作为方法的输入参数,这样可以保证它的不变性。
另外,如果我们对immutable类型的变量进行频繁的修改,会占用大量的空间,这会占用过多的内存,所以我们在编程时,也不要过度使用。
之后就是ADT操作的4种基本类型:构造、生产、观察、变值,构造就是通过构造函数或其他函数生成一个新的对象,而生产是通过现有的对象生成一个新的对象,观察是从一个抽象的对象中返回一个不同类型的对象。而变值是改变对象。
之后我又学习了表示独立性:这部分主要是满足客户的需求,客户不需要了解到内部如何实现,只需要了解到最后的运行结果和开始的输入要求。
之后又学习了表示泄露:有的时候我们返回了一个mutable的值,这样就将内部代码泄露给了客户端,这就构成了表示泄露。
之后又学习了AF和RI的书写:我们可以把RI看做所有表示值的一个子集,包含了所有合法的表示值。也可以当作合法的一个条件。AF是表示空间和抽象空间的映射,在编写程序时,如果我们能将这AF正确书写,对于我们的编程会十分有用。
在学习面向对象这部分知识的过程中,我了解到了设计ADT的具体过程和大致思路,而且还了解到要为了防止进行防御式拷贝,对于ADT的设计有了初步的掌握。而且有了初步的规范。