类 (计算机科学)

✍ dations ◷ 2025-06-30 06:21:06 #程序架构,面向对象的程序设计

类(英语:class)在面向对象编程中是一种面向对象计算机编程语言的构造,是创建对象的蓝图,描述了所创建的对象共同的属性(英语:Attribute (computing))和方法。

类的更严格的定义是由某种特定的元数据所组成的内聚的包。它描述了一些对象的行为规则,而这些对象就被称为该类的实例。类有接口和结构。接口描述了如何通过方法与类及其实例互操作,而结构描述了一个实例中数据如何划分为多个属性。类是与某个层的对象的最具体的类型。类还可以有运行时表示形式(元对象),它为操作与类相关的元数据提供了运行时支持。

支持类的编程语言在支持与类相关的各种特性方面都多多少少有一些微妙的差异。大多数都支持不同形式的类继承。许多语言还支持提供封装性的特性,比如访问修饰符。类的出现,为面向对象编程的三个最重要的特性(封装性、继承性、多态性),提供了实现的手段。

在现实世界中,经常有属于同一个类的对象。例如,某辆自行车只是世界上很多自行车中的一辆。在面向对象软件中,也有很多共享相同特征的不同的对象:矩形、雇用记录、视频剪辑等。可以利用这些对象的相同特征为它们创建一个蓝图。对象的软件蓝图称为类。

类是定义同一类所有对象的变量和方法的蓝图或原型。例如,可以创建一个定义包含当前档位等实例变量的自行车类。这个类也定义和提供了实例方法(变档、刹车)的实现。

实例变量的值由类的每个实例提供。因此,当创建自行车类以后,必须在使用之前对它进行实例化。当创建类的实例时,就创建了这种类型的一个对象,然后系统为类定义的实例变量分配内存。然后可以调用对象的实例方法实现一些功能。相同类的实例共享相同的实例方法。

除了实例变量和方法,类也可以定义类变量和类方法。可以从类的实例中或者直接从类中访问类变量和方法。类方法只能操作类变量 - 不必访问实例变量或实例方法。

系统在第一次在程序中遇到一个类时为这个类创建它的所有类变量的拷贝 - 这个类的所有实例共享它的类变量。

对象和类的说明其实很相似。实际上,类和对象之间的差别经常是一些困惑的起源。在现实世界中很明显,类不是它描述的对象 - 自行车的蓝图不是自行车。但是在软件中就有点难区分类和对象。这部分是由于软件对象只是现实世界的电子模型或抽象概念。但是也由于很多人用“对象”指类和它们的实例这两者。

抽象类被定义为永远不会也不能被实例化为具体的对象。它往往用于定义一种抽象上的概念,在类的继承关系中它往往被定义在较上层的位置。在程序设计的实践活动中,抽象类与接口存在类似的地方,即它更偏重于对共通的方法和属性进行规约。但与接口存在一个非常大的差异则在于,抽象类往往可以规约一个共同的方法和属性时提供一个对他们的实现。

以现实世界为例:“水果”可以算作一个抽象类,而“苹果”、“香蕉”则可以作为它的派生类。区别在于,“水果”是个概念,它不会有实例,但是“苹果”、“香蕉”则肯定会有实例。

对象提供了模型化和信息隐藏的好处。类提供了可重复使用性的好处。自行车制造商一遍一遍地重用相同的蓝图来制造大量的自行车。软件程序员用相同的类,即相同的代码一遍一遍地创建对象。

相关

  • MRSA耐甲氧西林金黄色葡萄球菌(Methicillin-resistant Staphylococcus aureus)或多重抗药金黄色葡萄球菌(Multiple-resistant Staphylococcus aureus)是金黄色葡萄球菌的一独特菌株,
  • 儿茶酚胺儿茶酚胺(拉丁语:Catecholamine)是具有儿茶酚核的(苯乙)胺类化合物的统称,是由肾上腺产生的一类应激拟交感“斗或逃”(Fight or Flight)激素。最重要的儿茶酚胺是肾上腺素(Epinephrin
  • 2009年地球科学国际地球科学奥林匹克竞赛(International Earth Science Olympiad, IESO)为十二个国际科学奥林匹克竞赛之一,每年举办一次,是测验中学生于地质学、地球物理学、气象学、海洋学
  • 爱国启蒙运动爱国启蒙运动(朝鲜语:애국계몽운동/愛國啓蒙運動 Aeguk Gyemong Undong ?),又称爱国文化启蒙运动,是朝鲜大韩帝国末期的社会运动,以“自强”和“独立”为口号,旨在通过振兴产业和
  • 国王十字火车站国王十字车站(英语:King's Cross Railway Station)是一个1852年启用的大型铁路终点站,位于伦敦市中心的国王十字地区,在卡姆登区与伊斯林顿区的交界线靠卡姆登区一侧。由A501、尤
  • 美高梅拉斯维加斯美高梅大酒店(MGM Grand Las Vegas)是一间位于美国内华达州拉斯维加斯赌城大道上的赌场饭店。美高梅大酒店是世界上客房数量第二多的饭店,也是全美国最大的度假村设
  • 圣马丁大区圣马丁大区(西班牙语:Departamento de San Martín)是秘鲁中北部的一个大区。面积为51,253.31平方公里,人口为989,973人(2007年)。首府莫约班巴,最大城市塔拉波托。1906年9月4日建
  • 瓦伦丁·谢罗夫瓦伦丁·阿历克塞诺维奇·谢罗夫(Валентин Александрович Серов1865年 - 1911年) ,俄罗斯著名肖像画家。谢罗夫从童年时期就师从列宾学画,1880年进入
  • 威廉·约瑟夫·伯恩斯威廉·约瑟夫·伯恩斯(William Joseph Burns,1956年4月4日-)美国民主党政治人物。他曾是美国副国务卿、政务国务次卿、近东事务助理国务卿、美国驻俄罗斯大使及美国驻约旦大使。
  • 范嗏范嗏,又作范察或樊察(满语:ᡶᠠᠨᠴᠠ,穆麟德:,太清:),是布库里雍顺的裔孙,为凡察和肇祖原皇帝孟特穆之祖父。清实录记载了被神鹊所救后复国的传说:.mw-parser-output .templatequote{m