要理解面向对象,我们首先要知道什么是面向过程

面向过程:

    面向过程重点在过程两个字,神马是过程,这还要解释吗?我还是说下吧,过程就是一条线,一个步骤跟着一个步骤,更生动点的说就是像工厂里面的流水线一样。

    它的优点是很明显的,一个流程一个流程的走,对于一些不需要太多修改的程序很简单,它能把复杂的问题简单化。

    而它的缺点也是很明显的,缺少灵活性,即一套流水线的作业只能适合于去解决一类问题。

说了面向过程,那么面向对象和它有什么区别呢?为什么会产生面向对象?我们怎么去使用面向对象来进行编程?

面向对象的核心自然是对象,什么是对象?答曰:万物皆对象。解释完毕。哈哈,这样说却是是够笼统的啊,我们细化的说,对象就是现实生活中每一个具体的东西,我们能通过一些描述性的语言把它标识出来,这就是一个一个的对象,例如一个人。而众多有相同特征的对象又可以归为一类,例如人类。

面向对象编程,就是把现实中的对象对应到我们的程序中去,这是一种很伟大的思想,我们在程序中写好每一个类,然后通过类产生一个一个的对象。

可以看如下现实对象与程序中对象的对应关系:

现实中的对象 python 中的对象
通过总结现实中所有对象共有的特征而得出相应得类 首先定义类,然后由类产生对象,类定义的属性和方法是通过对所要处理问题的抽象
特征 属性
行为 方法
生育 继承
活生生的人 指向内存的一块空间

区别:

  说了这些,我们可以看出它和面向过程的主要区别就是关注点不同,就好比你去跑步,面向过程只关注你怎么跑,而面向对象则关注的是跑步的人。面向过程的思维方式是分析综合,面向对象的思维方式是构造。

为什么会产生面向对象:我觉得主要是面向过程的扩展性差,而面向对象的扩展性很好,而当前很多软件的需求是经常性的变化的。

怎么使用面向对象编程:

  这里简单大概的说一下,使用一个对象首先要定义一个类,类名要大写,然后通过类加括号,加或不加参数就可以产生一个又一个对象了。对象的初始化方法在每个类产生对象的时候被调用。类里面定义的方法的self参数指向创建的对象。

day24--面向对象基础的更多相关文章

  1. day24 面向对象设计part1

    #!/usr/bin/env python # -*- coding:utf-8 -*- # ----------------------------------------------------- ...

  2. 了解JavaScript 面向对象基础 & 原型与对象

    面向对象语言中的对象 老是能听到什么基于对象, 面向对象. 什么是对象, 如果有面向对象基础的人可以无视了, 下面举个简单的例子给大家讲讲面向对象中, 对象的定义, 这个是比较通用的, 不过对于JS来 ...

  3. MYSQL、PHP基础、面向对象基础简单复习总结

    一.MYSQL         1.配置MySql                 第一步安装服务器(apache).                 第二部安装MySql界面程序         2 ...

  4. 从零开始学Python第六周:面向对象基础(需修改)

    标签(空格分隔): 面向对象 一,面向对象基础 (1)面向对象概述 面向过程:根据业务逻辑从上到下写代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类 ...

  5. python面向对象基础

    面向对象基础 1. 简述 编程方式: 面向过程: 根据代码在脚本的堆叠顺序,从上到下依次执行 函数式编程:将相同功能的代码封装到函数中,直接调用即可,减少代码重复性 面向对象:对函数进行分类和封装,将 ...

  6. java基础学习05(面向对象基础02)

    面向对象基础02 实现的目标 1.String类的使用2.掌握this关键字的使用3.掌握static关键字的使用4.了解内部类 String类 实例化String对象一个字符串就是一个String类 ...

  7. java基础学习05(面向对象基础01--类实例分析)

    面向对象基础01(类实例分析) 实现的目标 1.如何分析一个类(类的基本分析思路) 分析的思路 1.根据要求写出类所包含的属性2.所有的属性都必须进行封装(private)3.封装之后的属性通过set ...

  8. java基础学习05(面向对象基础01)

    面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...

  9. 8.python笔记之面向对象基础

    title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...

  10. 【重走Android之路】【Java面向对象基础(三)】面向对象思想

    [重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想   1 面向对象的WWH   1.1 What--什么是面向对象         首先,要理解“对象”.在Thinkin ...

随机推荐

  1. Redis新接触

    一.redis简介 redis即Remote Dictionary Server,是一个key—value存储系统. 二.优点 1.redis支持的存储类型较多,如String.List.Hash.s ...

  2. 【C语言程序】今天是祖国母亲的生日,特意编写一个小程序,为祖国母亲庆生~

    #include <stdio.h> #define N 80 int main(int argc, char *argv[]) { char a[N]; printf("Hel ...

  3. Windows中杀死占用某个端口的进程(转)

    最近写项目,总是出现端口被占用的问题,原来傻傻的把电脑重启一下,终于有一天受不了了,想要想办法解决.刚开始从网上找了好多教程,发现不行.开始自己尝试,终于,成功的将占用端口的进程杀掉.在此记录下过程( ...

  4. 【洛谷】SAC E#1 Factorial

    别人可以眼杀我却研究了一个小时看了题解才懂的数学题 输入: n, k 输出: n!在k进制下后缀0的个数 n,k <= 10^12 将 n! 表示成 x×2y5z 的形式,其中 x mod 2 ...

  5. IDEA_构建Maven项目报错(1)

    构建报错: [ERROR] Plugin org.apache.maven.plugins:maven-archetype-plugin:RELEASE or one of its dependenc ...

  6. Eureka源码解读

    Eureka是我接触分布式软件和服务的第一个框架,所以其原理和实现我的好好研究一下,Eureka可以参看这篇博文:http://springcloud.cn/view/29 初学者会在教程中看到使用@ ...

  7. PL-SVO公式推导及代码解析:位姿优化

    通过跳过极线约束单独优化图像中每个特征的位置后,必须通过最小化3D特征与图像中相应的2D特征位置之间的重投影误差来进一步细化(3)中获得的相机姿态( 见图5).为此,我们考虑在世界坐标系中3D特征和相 ...

  8. 1python简介

    02 python和03 python的区别: python:优美,清晰,简单. python2x:    源码重复,混乱,冗余.    源码不规范.     python3x: 源码整合,优美,清晰 ...

  9. IEnumerable、IEnumerator、ICollection、IList、List的继承关系及简单使用

    IEnumerable和IEnumerable<T>接口在.NET中是非常重要的接口,它允许开发人员定义foreach语句功能的实现并支持非泛型方法的简单的迭代,IEnumerable和I ...

  10. 长连接锁服务优化实践 C10K问题 nodejs的内部构造 limits.conf文件修改 sysctl.conf文件修改

    小结: 1. 当文件句柄数目超过 10 之后,epoll 性能将优于 select 和 poll:当文件句柄数目达到 10K 的时候,epoll 已经超过 select 和 poll 两个数量级. 2 ...