CLASS是一种在网路工程中的一种协议。一般组词为「CLASSLESS」（无类）或者「CLASSFUL」（有类）。面向对象编程中一个无明显特点的范畴，用于描述一组更具体的称为对象的东西。另有日本乐队组合名称也为CLASS。同时，class也是C++语言中的关键字，在matlab中class用于获取变数的类型。
类（Class）实际上是对某种类型的对象变数和方法的原型.类是从一些具有相同属性或功能的具体实例，抽象出共有的一些属性的，自定义抽象数据类型。
类是对某个对象的定义。它包含有关对象动作方式的信息，包括它的名称、方法、属性和事件。实际上它本身并不是对象，因为它不存在于内存中。当引用类的代码运行时，类的一个新的实例，即对象，就在内存中创建了。虽然只有一个类，但能从这个类在内存中创建多个相同类型的对象。
可以把类看作「理论上」的对象，也就是说，它为对象提供蓝图，但在内存中并不存在。从这个蓝图可以创建任何数量的对象。从类创建的所有对象都有相同的成员：属性、方法和事件。但是，每个对象都象一个独立的实体一样动作。例如，一个对象的属性可以设置成与同类型的其他对象不同的值。
在现实世界中，你经常看到相同类型的许多对象。比如，你的自行车只是现实世界中许多自行车的其中一辆。使用面向对象技术，我们可以说你的自行车是自行车对象类的一个实例。通常，自行车有一些状态（当前档位、两个轮子等等）以及行为（改变档位、剎车等等）。但是，每辆自行车的状态都是独立的并且跟其它自行车不同。
当厂家制造自行车的时候，厂商利用了自行车共有的特性来根据相同的蓝图制造许多自行车。如果制造一辆自行车就要产生一个新蓝图，那效率就太低了。
自行车的类需要定义一些实例变数来包括当前档位、当前速度等等。这个类将为实例方法定义和提供实施方法，它允许骑车者改变档位、剎车以及改变脚踏板的节奏，如图1所示：
除了实例变数，类还要定义类的变数。类变数包含了被类所有实例共享的信息。比如，假设所有的自行车有相同的档位数。在本例子中，要定义一个实例变数来容纳档位数。每一个实例都会有变数的副本，但是在每一个实例中数值都是相同的。在这样的情况下，你可以定义一个类变数来包含档位数，这样所有的类的实例都共享这个变数。如果一个对象改变了变数，它就为改变那个类的所有对象。类同样可以定义类方法。你可以直接从类中调用类方法，然而你必须在特定的实例中调用实例方法。如图3所示。