站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
类
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
'''类'''是[[面向对象]][[程序设计语言]]中的一个概念,实际上是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象[[编程]]的基础。 类是一种面向对象[[计算机]]编程语言的构造,是创建对象的蓝图,描述了所创建的对象共同的属性和方法。 ==简介== 类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。实际上它本身并不是对象,因为它不存在于[[内存]]中。当引用类的[[代码]]运行时,类的一个新的实例,即对象,就在内存中创建了。虽然只有一个类,但能从这个类在内存中创建多个相同类型的对象。 可以把类看作“理论上”的对象,也就是说,它为对象提供蓝图,但在内存中并不存在。从这个蓝图可以创建任何数量的对象。从类创建的所有对象都有相同的成员:属性、方法和事件。但是,每个对象都象一个独立的实体一样动作。例如,一个对象的属性可以设置成与同类型的其他对象不同的值。 更严格的说类是由某种特定的[[元数据]]所组成的内聚的包。它描述了一些对象的行为规则,而这些对象就被称为该类的实例。类有[[接口]]和结构。接口描述了如何通过方法与类及其实例互操作,而结构描述了一个实例中[[数据]]如何划分为多个属性。类是与某个层的对象的最具体的类型。类还可以有运行时表示形式(元对象),它为操作与类相关的元数据提供了运行时支持。 支持类的编程语言在支持与类相关的各种特性方面都多多少少有一些微妙的差异。大多数都支持不同形式的类继承。许多语言还支持提供封装性的特性,比如访问[[修饰符]]。类的出现,为面向对象编程的三个最重要的特性(封装性,继承性,多态性),提供了实现的手段。 ==类的定义== 在现实世界中,经常有属于同一个类的对象。例如,某辆自行车只是世界上很多自行车中的一辆。在面向对象[[软件]]中,也有很多共享相同特征的不同的对象:矩形、雇用记录、视频剪辑等。可以利用这些对象的相同特征为它们建立一个蓝图。对象的软件蓝图称为类。 类是定义同一类所有对象的变量和方法的蓝图或原型。例如,可以建立一个定义包含当前档位等实例变量的自行车类。这个类也定义和提供了实例方法(变档、刹车)的实现。 实例变量的值由类的每个实例提供。因此,当创建自行车类以后,必须在使用之前对它进行实例化。当创建类的实例时,就建立了这种类型的一个对象,然后系统为类定义的实例变量分配内存。然后可以调用对象的实例方法实现一些功能。相同类的实例共享相同的实例方法。 除了实例变量和方法,类也可以定义类变量和类方法。可以从类的实例中或者直接从类中访问类变量和方法。类方法只能操作类变量 - 不必访问实例变量或实例方法。 系统在第一次在[程序]中遇到一个类时为这个类建立它的所有类变量的拷贝 - 这个类的所有实例共享它的类变量。 ===类定义的一般形式=== <pre> class Name { public: 类的公有接口 MFC类图 private: 私有的成员函数 私有的数据成员定义 }; </pre> 类的定义由类头和类体两部分组成。类头由关键字 Class 开头,然后是类名,其命名规则与一般标识符的命名规则一致。类体包括所有的细节,并放在一对花括号中。类的定义也是一个语句,所以要有分号结尾,否则会产生编译错误。 类体定义类的成员,它支持两种类型的成员: *数据成员,它们指定了该类对象的内部表示。 *成员函数,他们指定了该类的操作。 类成员有3种不同的访问权限: *公有( public )成员可以在类外访问。 *私有( private )成员只能被该类的成员函数访问。 *保护( protected )成员只能被该类的成员函数或派生类的成员函数访问。 数据成员通常是私有的,成员函数通常有一部分是公有的,一部分是私有的。公有的函数可以在类外被访问,也称之为类的接口。可以为各个[[数据]]成员和成员函数指定合适的访问权限。 ==类和对象== 对象和类的说明其实很相似。实际上,类和对象之间的差别经常是一些困惑的起源。在现实世界中很明显,类不是它描述的对象 - 自行车的蓝图不是自行车。但是在软件中就有点难区分类和对象。这部分是由于软件对象只是现实世界的电子模型或抽象概念。但是也由于很多人用“对象”指类和它们的实例这两者。 ===抽象类=== 抽象类被定义为永远不会也不能被实例化为具体的对象。它往往用于定义一种抽象上的概念,在类的继承关系中它往往被定义在较上层的位置。在程序设计的实践活动中,抽象类与接口存在类似的地方,即它更偏重于对共通的方法和属性进行规约。但与接口存在一个非常大的差异则在于,抽象类往往可以规约一个共同的方法和属性时提供一个对他们的实现。 以现实世界为例:"水果"可以算作一个抽象类,而"苹果","香蕉"则可以作为它的派生类。区别在于,"水果"是个概念,它不会有实例,但是"苹果"和"香蕉"则肯定会有实例。 ==相关条目== *[[JAVA]] *[[数据结构]] ==参考来源== *http://zh.wikipedia.org/zh-cn/%E7%B1%BB_(%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6) *http://baike.baidu.com/view/2390.htm [[category:面向对象|N]] [[category:程序设计语言|N]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)