面向对象编程概念简述

一、 编程范式

在我们编程语言里面,大致可以分为两个大类:命令式编程 和  声明式编程

1. 命令式编程

所谓命令式编程,就是以命令为主,给计算机一条一条命令,计算机来按照我们给的命令原封不动的执行。

命令机器如何去做事情(how)

常见的命令式编程语言有:C语言,C++,C#,Java,PHP,Ruby

从命令式编程语言又可以分为两大类:面向过程 和 面向对象

(1) 面向过程

就是分析解决问题所需要的步骤,然后把这些步骤一步一步实现

(2) 面向对象

所谓面向对象,就是将程序里面的模型看做一个一个的对象。对象和对象之间会产生彼此的联系。使用对象来解决问题

需要注意:就算是面向对象编程,里面也会有面向过程的步骤。

2. 声明式编程

所谓声明式编程,就是指告诉计算机你想要什么(what),让机器去解决如何实现。

声明式编程里面也可以分为两大类:DSL 和 函数式编程

(1) DSL

DSL翻译成中文为领域专用语言(Domain Specific Language)。顾名思义,就是指某一个领域专用的语言。

常见的DSL语言有HTML,CSS,SQL

(2) 函数式编程

将程序里面的一些模型看做是数学里面的函数来进行计算。

一、 面向对象

1. 什么是面向对象

首先需要搞清楚什么是对象(Object)。通俗来讲,就是东西。我们这个世界就是由各种各种的东西组成的。东西与东西之间有彼此的联系。

现实生活中我们描述一个东西,或者一个物品的时候,常常会从2个方面来进行描述

例如我要描述一个手机

首先第一个就是外观(属性):白色  5.5寸  矩形

接下来就是从功能来进行描述:看电影 打电话  玩游戏

2. 面向对象和面向过程的区别

面向过程的特点:由顶自下,依次执行,我们需要去考虑每一个步骤。

面向对象的特点:面向对象更加符合我们人类的思想。我们只需要找到我们需要的对象即可。

ATM机取钱

面向过程:我们需要考虑每一个步骤,例如取钱的时候金额是多少,余额是多少,用户的输入是否合法

面向对象:只需要考虑这个ATM这个对象即可

3. 面向对象的特点

一般来讲,面向对象的特点有3个:封装,继承和多态

有些老的教材,会告诉你面向对象的特点有4个:除了上面3个以外,还多加了一个抽象

封装:就是将细节隐藏起来,不向外部暴露。例如现实生活中电视机就是一个典型的封装,无法看到内部电子元件这些细节

继承:和现实生活中一样,儿子可以继承父亲的一些东西。在程序里面子类可以继承父类。

多态:如果从语言的角度来看,就是不同对象同一方法的作用不一样。例如现实生活中,一个action这个单词对于不同的职业的人来讲,意义是不一样的。

4. 类

和现实生活中一样,东西一多,按照人的思维自然就会想到分类。比如给你1万本书。我们首先会想到分类,例如分为小说类,科技类,漫画类,政治类,经济类...每一个类别下面的书都是有共同的特点的。

类和对象的关系:类是对象的一种概括,是一个抽象的东西,对象是类的一种具体实现,是一个具体的东西。

5. 创建对象

(1) 通用编程语言产生对象的方式

对象是从类产生的。所以如果我们要获取对象,首先需要创建类

(2) JS中创建对象的方式

在ES6之前,JS里面没有类的概念。所以在ES6之前都是通过函数来模拟类

模拟类的函数通常被称之为构造函数。为了区分构造函数和普通函数,有一个不成文的规定,构造函数的函数名首字母大写

对象和构造函数,以及原型对象之间的关系图(重要)

前面我们所讲述的数组,函数,数字,字符串等都有对应的构造函数。如果是通过构造函数实例化的,那么就是一个对象

对象里面有一个叫做constructor的属性,可以查看到这个对象的构造函数

在每一个构造函数里面,都有一个隐藏属性,叫做prototype,这个属性指向一个对象,这个对象就是通过构造函数实例化出来的对象的原型对象

原文地址:https://www.cnblogs.com/bohou/p/9098017.html

时间: 2024-11-08 21:35:48

面向对象编程概念简述的相关文章

黑马程序员-----面向对象编程概念

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ----- 第一讲   面向对象编程概念 本小节知识点: 1.[了解]编程的实质是什么? 2.[掌握]面向对象的基本概念 类    包    接口      继承      多态 ( 面向过程是强调我们要做一件事情有哪些步骤, 面向对象是强调我们做一件事

Ruby面向对象编程概念记录

我这个人记忆力一直比较差,需要没事多看看,今天再看Ruby面向对象编程的内容,把其中一些概念记下来,以便日后回忆使用. 基本概念: 一.局部变量.全局变量.实例变量(对象变量)和类变量. 二.类方法和实例方法(对象方法). 三.继承. 四.覆写方法. 五.反射. 六.封装.(public.private.protected). 七.多态. 八.嵌套类. 模块概念: 一.模块. 二.命名空间. 三.掺入(mix-in)

面向对象编程概念

如果你以前从来没有使用面向对象语言,你需要在开始编写JAVA代码之前先理解这个概念.你需要理解什么是对象.什么是类.对象和类的关系怎样以及使用消息怎样在对象之间进行通讯.本教程的前面部分将描述面向对象编程的概念,而后面的教程将教你怎样将这个概念编成代码. 2.1什么是对象 对象是一些相关的变量和方法的软件集.软件对象经常用于模仿现实世界中我们身边的一些对象.对象是理解面向对象技术的关键.你在学习之前可以看看现实生活中的对象,比如狗.桌子.电视.自行车等等.你可以发现现实世界中的对象有两个共同特征

PHP面向对象编程 对象的基本概念

再次梳理一下面向对象编程的要点. 此文是以php为例,但思想是通用的. 总结的PHP面向对象编程笔记 对象的基本概念 对象的基本构成 对象包含两部分 一.对象的组成元素 是对象的数据模型,用于描述对象的数据. 又被称为对象的属性,或对象的成员变量. 二.对象的行为 是对象的行为模型,用于描述对象能够做什么. 又被称为对象的方法. 对象的特点 1 每个对象都是独一无二的 2 对象是一个特定事物,他的职能是完成特定功能 3 对象是可以重复利用的 面向对象的基本概念 面向对象就是在编程的时候数据结构形

二维数组 面向对象编程的概念、 类、对象以及引用 和成员方法

1.二维数组(熟悉)1.1 基本概念 一维数组本质上就是一段连续的存储单元,用于存放多个类型相同的数据内容. 二维数组本质上就是由多个一维数组组成的数组,也就是说二维数组中的每个元素都是一维数组,而一维数组的每个元素才是具体数据内容. 1.2 二维数组的声明(1)语法格式 数据类型[][] 数组名称 = new 数据类型[行数][列数];如: int[][] arr = new int[2][5]; - 声明一个具有2行5列元素类型为int的二维数组 其中行下标的范围是:0 ~ 1: 其中列下标

面向对象编程

面向对象:类,属性,方法 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的"对象",每个对象都拥有相同的方法,但各自的数据可能不同. 仍以Student类为例,在Python中,定义类是通过class关键字: class Student(object): pass class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下

python面向对象编程

java和c#只支持面向对象编程,python即可支持面向对象也可以支持函数式编程. 面向对象两个重要的概念:  1.类 2.对象 函数式 def sendemail(email,msg):            函数 print("8888") 面向对象 class Myclass: def sendmail(self,email,msg):      函数定义在类中第一个参数必须是self print("8888")              函数在类中定义叫方

面向对象编程的一些理解

(1) 简单的说类是对象的模版. 首先我们可以来理解一下对象的概念,面向对象编程的程序实际就是多个对象的集合,我们可以把所有的事物都抽象成对象,在程序设计中可以看作:对象=属性+方法.属性就是对象的数据,而方法就是对象的行为. 下面来说类,就像我开头所说类是对象的模版,而对象是类的实例化.举个例子,饼干模子可以看作是类,而具体的饼干就是对象.再比如有一个类是表示人,然后可以通过人这个模版来实例化出张三.李四... 比如说一个类是描述人的特征,为什么实例化? p = People(); 这个人有很

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