由于我们学校(哈工大)大二软件构造课程的大部分素材取自此,也是推荐的阅读材料之一,于是打算做一些翻译工作,自己学习的同时也能帮到一些懒得看英文的朋友。另外,该课程的阅读资料中有许多练习题,但是没有标准答案,所给出的答案均为译者所写,有错误的地方还请指出。
译者:李秋豪
审校:
V1.0 Fri Mar 23 17:20:24 CST 2018
理解可变性(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)