基于对象语言(英语:object-based language),常指某种编程语言使用了“对象”该概念,即将状态和操作封装(包裹)在“对象”里面。面向对象语言 除了拥有“对象”该概念以外,还拥有继承(英语:inheritance)等功能。在这种定义下,面向对象语言(英语:Object-oriented language) 是 基于对象编程语言 的子集。
在这种定义下,我们认为 基于原型( 英语:prototype-based)是 基于对象(英语:object-based)的,如JavaScript。而 面向对象 则是 基于类(英语:class-based)和 基于对象(英语:object-based)的,如:Java、C++。
另一种定义则是,只要使用“对象”该概念的编程语言都是 面向对象语言(英语:Object-oriented language),这种定义下,面向对象有两种分类: