面向对象:

是一种程序设计范型 

作用: 提高软件的重用性和灵活性,扩展性 

世界万物一切皆为对象,对象即是指由特定状态,特征,行为的实体


知识点一: 代码的重用

举个栗子

比如小月月有了一个女朋友1,因为一些其他原因,这个女朋友1离开了,不久以后,小月月又

找到了一个女朋友2,那么这个女朋友2和女朋友1肯定是有一些基本的共性的 ,比如走路,

是个女性,都有自己的名字,这时候,如果小月月是个富二代,他想找个小三,小三也具有

这些基本的共性,所以他就可以很快的new出来一个小三,只需要在此基础上添加额外自己想要

就可以了,我们把这些基本的功能写成代码这个时候

注意了:

通过面向对象,就可以实现一些基本功能的多次调用


疑点:通过函数式编程好像也可以实现类似代码重用的功能?

但是自己写的代码有时候需要传入一个参数,来告诉这个代码是谁在调用它,不然以前的去女朋友1来调用

这段代码的时候,你都不知道,想想是一件很恐怖的事情,所以通过面向对象就不需要传入参数 可以直接

调用,面向对象会自己识别,是谁在调用这段代码......

知识点二:代码的继承和封装

小月月是东北人 ,小月月生活的很幸福,他们生了一个boby,小月月当父亲了,这个boby会有一些地方

像小月月对吧 , 因为他是小月月的孩子嘛,帅气的外表,智慧的大脑 ,好了 

 

注意了:

这个时候通过面向对象把小boby封装起来,继承小月月的(比如东北话)代码属性 

 

疑点: 函数式编程可以实现啊 ,为什么要用面对象呢?

函数式编程是通过字典的形式把这种父与子的关系写入到内存中,然后来实现继承一些代码属性, 

所以写在内存中,这就允许了任何人都可以来改动,当然在我们现实生活中这是不允许的 

而面向对象会把这个小boby封装起来,可以正常调用,并且保持继承的关系 外面的人不知道怎么实现的,

是改动不了的,所以你懂了.... 

 

知识点三: 多态

一个人可以对于吃来说,可以有不同的形式

比如说你可以站着吃饭 ,你也可以坐着吃饭   

 


知识点四:类的定义 

class  Person(object):    #声明了一个类
    pass
 
people_one = Person("bds")

class :是一个抽象的,泛指的东西  

Person: 代表所有人,一个物种,人的一些基本的特征 , 比如说名字,血液,毛发,

people_one: 这就是一个生动的现实的人类,是一个对象 

  一句话: people_one是通过class Person 实例化出来的一个对象

 

代码演示: 

class  Person(object):
    def __init__(self,name)    #初始化函数
        self.name = name 
    def say_name(self):
        print "my name is %s"  % self.name 
 
p_one = Person("bds")
p_one.say_name()

p_one是Person实例化的一个对象,在实例化对象时 ,就会执行初始化函数,所以比如一些基本的特征,属性

就可以通过初始化函数来定义

理解:什么样的特征需定义self呢?

一个吃的特征,每个人都是一样的,每个人都可以吃,所以这个就是大家共性的,就不需要初始化来区别,但是 

比如名字,每个人的都不同的,所以这个name 就需要初始化函数来定义name,来区别每个人。

方法,属性,函数,功能

举个栗子 

假如有一个杯子,他有各种各种的属性,长,宽,高,形状

它有一个功能之一是用来装水,我们调用这个装水的动作就叫做方法 

           函数实现各种功能                 调用功能的动作就是方法

函数              -->               功能                    -->                        方法