面向对象-01

面向对象

  面向对象是高级语言的特性,也就是说凡是高级语言都是面向对象的,就像python就是面向对象的编程语言,但是面向对象是一种编程思想,并不是像函数那样的方法,也要看情况决定是否用面向对象解决问题。如果业务问题中涉及了多个角色,而且这些角色或多或少都有一些公共的特性比如说动物和人,都会跑,这时候如果用面向过程来实现,就会造成代码的冗余,会有一大堆重复代码,违反了python语言的简洁的特点,而用面向对象来实现,就会很大程度上减少冗余代码。

面向对象和面向过程的区别:

  面向过程可以理解为一条流水线(流水线式思维),核心是过程编程,过程就是解决问题的步骤,也就是说实现问题额时候要一步一步顺序完成,严格遵循顺序。

面向过程的优点:极大的降低了写程序的复杂度,只要按着设计好的步骤,完成代码就行了。

面向对象的缺点:一套流水线或者流程就用来解决一个问题,代码修改牵一发动全身,不好维护。

但是面向过程编程也是有使用场景的,一个场景就是一旦完成就很少改变的情况下,就可以用面向过程,举例:Linux内核,git,以及Apache HTTP Server等。

  面向对象的核心是对象(上帝式思维),在高级语言里,万物皆对象,把问题分解成一个一个的类,然通过对象来解决问题。

面向对象的优点是:解决了程序的扩展性,使程序的维护性增强,容易修改和扩展,对某一个对象单独修改,会立刻反应到整个体系中。

面向对象的缺点:可控性差,无法像面向过程的程序设计流水线式的可以很精准的预测问题的处理流程与结果,程序一旦开始就由对象之间的交互解决问题,无法预测最终结果。

面向对象的应用场景:需求经常边变化的软件,一般需求的变化都集中在在用户层,互联网应用,企业内部软件,游戏等都是面向对象的程序设计的优势地方。

面向对象编程可以使程序的维护和扩展变得简单,并且可以大大提高程序开发效率,而且面向对象的程序可以使他人更加容易理解你的代码逻辑,让开发变得更加从容。

 初识类和对象

 python中一切都是对象,在python中,用变量表示特征,用函数表示技能,因而具有相同特征和技能的一类事物就是类,对象就是类的实例化,也就是这一类事物中具体的一个

类的相关知识

  类 == 属性 + 方法

  首先来说一下定义函数,函数是这样定义的 :

def func(*args,**kwargs):
    函数体

类是这样定义的:

class 类名:
    类体

定义一个完整的类:

class Person: #类名要首字母大写
    role = "person" #属性
    def walk(self):  #方法
        print("person is walking")

类有两种作用:属性引用和实例化

  

posted @ 2019-08-05 15:20  BackEndJT  阅读(106)  评论(0编辑  收藏  举报