CS61A fa2021 Composing Programs 2.6 Implementing Classes and Objects 类与对象的实现

2.6 类与对象的实现

在OOP中,我们把在遇到的问题中,梳理出来的逻辑(即如何表示与操作数据)都写在类声明中。在本章节我们看到类和对象本身可以仅使用函数和字典来表示。以这种方式实现OOP的目的是说明使用OOP不需要特殊的编程语言,也让诸位更好的理解OOP的思想。OOP不是目的,而是手段。程序即使在不内置OOP语法的编程语言中也可以是面向对象的。

很显然,我们将不再使用点表达式,因为这是OOP的语法。我们可以通过其他手段来达到我们的目的——创建字典。在2.4.8节讲述了如何通过字典来传递信息,在这里我们会想办法在基类、子类与实例传递信息。而所谓这些类与对象,正好可以看成是包含着一个个属性的字典。

我们不需要完全把OOP语法系统完全克隆出来,毕竟还有很多知识点我们并为讲到,例如元类(meta-classes)和静态方法(static methods)等。我们甚至不会去考虑多重继承或者一些较为复杂的方法(返回值某个对象的方法)。因为我们的本意不是克隆一个完全的OOP语法系统,进入OOP内部去理解他的思想才是我们的本意。

### 关于CS61A课程的教学资源及相关登录信息 CS61A是加州大学伯克利分校(UC Berkeley)计算机科学专业的入门课程,其全名是 *Structure and Interpretation of Computer Programs* [^1]。该课程的主要教材是由Harold Abelson和Gerald Jay Sussman编写的《Structure and Interpretation of Computer Programs》一书,而现代版本的在线教程则由John DeNero编写并维护,称为 *Composing Programs* [^2]。 #### 官方教学资源 官方课程页面通常会提供详细的资料,包括但不限于讲座视频、作业、讨论题目以及考试样卷等内容。对于CS61A的具体资源访问方式如下: - **官方网站**: 可通过UC Berkeley的公开课程平台找到最新的CS61A课程主页。此主页包含了所有的课程材料,例如幻灯片、练习题和项目说明等 [^4]。 - **Discussions & Labs**: 学生可以通过课程官网获取每周的Discussion Notes 和 Lab Exercises 的PDF文件。这些文档有助于理解课堂内容并通过实践巩固所学知识点 [^4]。 #### 登录账号需求 为了充分利用上述提到的各种数字化工具和服务,学生需要注册相应的账户来完成特定活动或者提交作品。以下是几个常见的例子及其对应的解决方案: - 如果计划利用DrRacket作为编程环境,则需自行下载软件包,并按照指导配置好所需的collections组件 [^5]; - 对于某些依赖图形界面的应用程序(比如STK),当遇到因缺少X11支持而导致运行失败的情况时,应参照相关指南安装合适的显示服务器 ; 值得注意的是,虽然部分服务可能要求创建个人帐户才能完全体验功能特性,但对于大多数开源性质的学习辅助应用而言,它们往往允许匿名模式下的基本操作尝试。 ```python # 示例代码片段展示如何设置简单的Python函数用于解决Hog游戏中的一个问题 def roll_dice(num_rolls, dice=six_sided): """Simulate rolling the DICE exactly NUM_ROLLS>0 times.""" total = sum(dice() for _ in range(num_rolls)) return total ``` 以上即为针对CS61A课程相关内容的回答概览,涵盖了从理论书籍推荐到实际动手演练等多个方面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值