面向对象语言的深入剖析
在软件开发领域,面向对象编程是一种强大且广泛应用的编程范式。它基于信息隐藏和封装的原则,为软件设计和开发带来了诸多优势。下面将深入探讨面向对象语言的相关特性,包括类、单继承、多继承以及类成员测试等方面。
1. 信息隐藏与封装
信息隐藏或封装是一项实用的软件工程原则。一个模块可以提供特定类型的值,但该类型的表示方式只有模块自身知晓。模块的客户端只能通过模块提供的操作来处理这些值。这样,模块就能确保这些值始终满足其自身设定的一致性要求。
面向对象编程语言旨在支持信息隐藏。由于“值”可能具有操作会修改的内部状态,因此将它们称为对象是合理的。由于典型的“模块”通常只处理一种类型的对象,我们可以摒弃模块的概念,从语法上将操作视为对象的字段,这些操作被称为方法。
2. 类的概念
为了说明面向对象语言的编译技术,我们使用一种名为Object - Tiger的简单基于类的面向对象语言。
2.1 类的声明语法
通过扩展Tiger语言,引入了新的声明语法来创建类:
- dec → classdec
- classdec → class class - id extends class - id { {classfield } }
- classfield → vardec
- classfield → method
- method → method id(tyfields) = exp