麻省理工18年春软件构造课程阅读08“可变性与不变性”

由于我们学校(哈工大)大二软件构造课程的大部分素材取自此,也是推荐的阅读材料之一,于是打算做一些翻译工作,自己学习的同时也能帮到一些懒得看英文的朋友。另外,该课程的阅读资料中有许多练习题,但是没有标准答案,所给出的答案均为译者所写,有错误的地方还请指出。



译者:李秋豪

审校:

V1.0 Fri Mar 23 17:20:24 CST 2018


本次课程的目标 Objectives

理解可变性(mutability)和可变对象

学会判断别名使用和理解可变性的危险

利用不变性使代码正确、易懂、可改动

译者注:mutability还可以翻译为“易变性”(that can change; likely to change),“易”似乎也能突出使用应该谨慎,但后来我还是觉得“可变”更准确,所以就译为“可变性”。


创建和使用对象

译者注:麻神理工是先教的Python,Java并没有作为课程。所以这里提供了一组从Python到Java过渡资料。Java基础好的朋友这节可以跳过。

From Ken Lambert’s tutorial From Python to Java, read the first 8 pages under Defining Classes:

Class Structure

Visibility Modifiers

Instance Variables and Constructors

Defining Other Constructors

Instance Methods

Method Overloading

Class (static) Variables and Methods

Symbolic Constants (final Variables)

Optional: if you want to see more examples, read these Java Tutorials pages:

Declaring Classes

Declaring Member Variables

Providing Constructors for Your Classes

Understanding Class Members

Using the this Keyword

Initializing Fields

阅读小练习

Classes and objects

class Tortoise: def __init__(self): self.position = 0 def forward(self): self.position += 1 pokey = Tortoise() pokey.forward() print(pokey.position)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwygjj.html