object-oriented programming）已被许多软体工程的学生寄予了更多的希望，达特茅斯学院的Mark Sherman指出，有两个不同的概念我们必须小心地加以分辨，从名称上就可以看出这两个概念的不同：抽象资料型别和阶层式型别。后者也被称为类别（class）。所谓抽象资料型别，其概念就是一个物件的型别应该由一个名称、一组适当的值和一组适当的操作方式来定义，而不是以它储存的结构来定义，这部分应该是要被隐藏起来的，例如Ada的包裹（package，使用私有型别）或Modula的模组（module）