C++学习 8.1 - 欢迎进入面向对象编程

C++学习系列文章均翻译自learncpp.com,一个非常好的C++学习网站,这个网站让我领悟到原来深奥的道理也可以讲的如此浅显易懂, 如果所有的软件都有类似的网站该多好啊,为了加深印象,我决定逐章翻译一下这个网站,哎,我自己都不相信我能做到...

之前的所有章节到目前为止都有一个共同的特点:他们都是非面向对象的。现在你已经掌握了一些基本知识我们可以进入面向对象编程了,这才是重头戏!

在传统的编程方法中,程序只是一系列发给电脑的指令,通过定义数据(通过变量)然后处理数据(通过语句和函数)。数据及处理数据的函数是完全独立的实体,被结合起来完成想要的结果。

那么什么是面向对象编程呢?和许多其他情况一样也许通过实际的例子会更容易理解。看看你的周围-你看到的一切都是对象。对象有两个主要的组成部分: 1)一系列的属性(例如:重量,颜色,尺寸,体积,形状等等...), 2)他们可以展现的若干行为(例如:被打开,加热其他的物体等等...)。这些属性和行为是不可分离的。

按照传统的编程方式,属性(数据)及行为(函数)是分离的实体,也就是说传统的编程方式通常无法提供对现实世界的直观的表示。恰当的掌控属性和行为之间的关系成了程序员的责任。

面向对象编程给我们定义一个“对象”的能力,来把属性和行为联系在一起放到一个自我包含,可以重复使用的包中。这就让程序写的更加模块化,更容易编写及理解,同时达到高度的复用。对象也提供了一个更直观的方式来与我们的数据交互,通过允许我们定义我们怎样与对象交互及该对象会怎样与其他对象交互。请注意面向对象编程并没有取代传统的编程方式。更准确的说,他在你的编程工具箱中增加了一个新的工具,来处理复杂的需求,当你需要的时候。

面向对象编程也带来了一些其他的有用的概念:继承,封装,抽象及多态(编程语言设计者的哲学是:可以用高深的词汇表达时就不用简单的词汇)。在接下来的几章中我们将逐一介绍这些概念。接下来会有很多新的内容,但是一旦你掌握了面向对象编程,你将不会再希望回到纯粹的传统编程方式。

时间: 2024-10-13 00:08:04

C++学习 8.1 - 欢迎进入面向对象编程的相关文章

C#学习笔记(六)——面向对象编程简介

一.面向对象编程的含义 *   是一种模块化编程方法,使代码的重用性大大的增加. *   oop技术使得项目的设计阶段需要的精力大大的增加,但是一旦对某种类型的数据表达方式达成一致,这种表达方式就可以沿用下去,直到这款应用的生命周期结束. (一)对象的含义 1.对象就是OPP应用程序的一个组成部分,这个组成部件封装了部分应用程序,这部分程序可以是一个过程.一些数据或一些更抽象的实体.对象的类型在OOP中有个特殊的名称叫做类.可以使用类来定义一个对象. PS:术语"类"和"对象

Java学习 (九)、面向对象编程

一.理解面向对象 结构化程序设计 1.程序=算法+数据结构 2.算法第一,数据结构第二 二.面向对象程序设计OOP 1.程序=对象+对象+… 2.据第一,算法第二 3.关键:让每个对象负责执行一组相关任务 三.面向对象编程的特性 1.万物皆对象 2.程序是一组对象彼此之间在发送消息 3.每个对象都有自己的内存占用,可以组装成更大的对象 4.每个对象都有类型,特定对象的所有类型都可以接收相同消息 四.类和对象的概念.区别和联系 概念: 类①类是创建对象的模板和蓝图②类是一组类似对象的共同抽象定义

python学习第十四天 -面向对象编程基础

python也是支持面向对象编程的.这一章节主要讲一些python面向对象编程的一些基础. 什么是面向对象的编程? 1.面向对象编程是一种程序设计范式 2.把程序看做不同对象的相互调用 3.对现实世界建立对象模型 面向对象编程的基本思想: 1.类用于定义抽象类型 2.实例根据类的定义被创建出来 如何定义一个类并创建实例? >>> class Animal(object): pass >>> dog = Animal() >>> cat = Animal

【C#学习笔记】二、面向对象编程

2.1 抽象类与接口 1)概念 抽象类是特殊的类,只是不能被实例化:除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法,这是普通类所不能的.抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们.另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们.接口是引用类型的,接口和抽象类实现了oop中的一个原则,把可变的与不可变的分离.抽象类和接口就是定义为不可变的,而把可变的作为子类去实现,接口和抽象类的相似之处有三点: ²    

PHP面向对象编程学习之对象基础

php虽然是一门学习起来非常简单的语言,但是这门语言也包含了对面向对象编程的支持.尤其是随着php5的发布,php对面向对象的支持有了很大的进步.最近学习了一下php的面向对象编程,不禁感慨,面向对象真的是一种非常优雅的编程,最主要的是真的很难! 学习面向对象,当然首先就要了解什么是类,什么是对象,类和对象有什么关系?类和对象的定义就不在这里赘述了,相信大家对类和对象都有一个基本的认识.还是主要说一下类和对象的关系:类是用于生成对象的模板,而对象是类的实例.如何定义类和实例化对象就不多说了,这都

再谈javascript面向对象编程

前言:虽有陈皓<Javascript 面向对象编程>珠玉在前,但是我还是忍不住再画蛇添足的补上一篇文章,主要是因为javascript这门语言魅力.另外这篇文章是一篇入门文章,我也是才开始学习Javascript,有一点心得,才想写一篇这样文章,文章中难免有错误的地方,还请各位不吝吐槽指正 吐槽Javascript 初次接触Javascript,这门语言的确会让很多正规军感到诸多的不适,这种不适来自于Javascript的语法的简练和不严谨,这种不适也 来自Javascript这个悲催的名称,

Day6 - Python基础6 面向对象编程

Python之路,Day6 - 面向对象学习 本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, 狗可以咬人,怎么描述这种不同的角色和他们的功能呢? 你搜罗了自己掌握的所有技能,写出了下面的代码来描述这两个角色 1 2 3 4 5 6 7 8 9 10 11

C++ Primer 学习笔记_73_面向对象编程 --再谈文本查询示例

面向对象编程 --再谈文本查询示例 引言: 扩展第10.6节的文本查询应用程序,使我们的系统可以支持更复杂的查询. 为了说明问题,将用下面的简单小说来运行查询: Alice Emma has long flowing red hair. Her Daddy says when the wind blows through her hair, it looks almost alive, like a fiery bird in flight. A beautiful fiery bird, he

C++ Primer 学习笔记_74_面向对象编程 --再谈文本查询示例[续/习题]

面向对象编程 --再谈文本查询示例[续/习题] //P522 习题15.41 //1 in TextQuery.h #ifndef TEXTQUERY_H_INCLUDED #define TEXTQUERY_H_INCLUDED #include <iostream> #include <fstream> #include <sstream> #include <vector> #include <set> #include <map&g