浅谈面向对象

面向过程编程(如:C、C++)面向对象编程(如:python,java)

面向过程:

根据业务逻辑从上到下写代码。

面向对象:

将数据与函数绑定在一起,进行封装,这样能够更快的开发程序,减少了重复代码的重复代码的重写过程

其实,面向过程编程最易被初学者接受,其往往用一段长代码实现指定功能,开发过程的思路是将数据与函数按照执行的逻辑顺序组织在一起,数据与函数分开考虑。

举个例子:

一个对电脑不了解的新手想买一台电脑。

方法一:

1.在网上查找资料

2.更具自己的预算和需求定电脑的型号

3.到市场上去买电脑

方法二:

1.找一个认识的电脑高手说一下自己的需求

2.付钱,提货


面向对象和面向过程都是解决问题的方式只不过思路不同

买电脑的第一种方式

强调的是过程和步骤,每一步都自己亲子实现。

这种方法就是典型的面向过程

买电脑的第二种方式:

强调的式电脑高手,电脑高手是解决问题的主角,对我们而言我们并不必亲自实现整个过程只需要找到一个电脑高手就可以解决问题。

这种解决问题的思路就是面向对象


定义:

面向对象(object-oriented;简称:oo)至今还没有一个统一的概念,我们把它定义为:按人们认识的世界的系统思维方式,采用基于对象(实体)的概念建立的模型,模拟客观世界分析、设计、实现软件的办法。

面向对象编程(object oriented programming-oop)是一种解决软件复用的设计和编程的方法。这种方法把软件系统 中详见相似的操作逻辑和操作 应用数据、状态一类的方式描述出来,以对象实例的形式在软件系统中复用,已达到提高软件开发效率的作用。

面向对象的自我理解:

面向对象是一种设计思想

1.符合人们的思考习惯

2.把执行者变成指挥者

3.简化功能,把复杂的事情简单化

面向对象的三大特征:

1.封装

2.继承

3.多态


类和对象:

面向对象编程的两个非常重要的概念:类和对象

创造对象

python中,可以根据已经定义的类创造出一个个对象

创建对象的格式:

创造对象demo:

class Car:

    def move(self):

        print('车载移动')

    def stop (self):

        print('汽车停止!')

BMW = Car() #创建实例对象

BMW.color = '黑色' #添加实例对象属性

BWM.move() #调用实例对象的方法

总结:

BWM = Car(),产生一个Car 的实例对象,此时可以通过实例对象来访问属性或方法

当创建一个对象时,就是用一个模型,来创造一个实物。


__init__()方法

使用方法:

class 类名:

    #初始化函数,用来完成一些默认         的设定

    def __init__():

        pass

__init__()方法的调用

class Car:

    def __init__(self):

        self.wheelNum = 4

        self.color = ‘黑色’

    def move()

        print(‘车子移动’)

print(‘车子的颜色%s’%BWM.color)

print('车轮的数量%d'%BWM.wheelNum)

总结:

当创建,Car对象后,在没有调用__init__()方法的前提下,BMW就默认有了两个属性。原因是__init__()方法是在创建对象后,就立刻被默认调用了。


既然在创建完对象后__init__()方法已经被默认的执行了,我们也可以让对象在调用__init__()方法的时候可以传递一些参数。

例子:

class Car:

    def__init__(self,wheelnum,newcolor):

        self.wheelnum = wheelnum

        self.newcolor = newcolor

    def move():

        print('汽车在移动')

BWM= Car(4,'green')

print(BWM.wheelnum)

print(newcolor)

总结:

1.__init__()方法,在创建一个对象时默认被调用,不需要手动调用

2.__init__(self)中,默认有1个参数名字为self,如果在创建对象时传递了2个实参,那么                 __init__(self)中出了self作为第一个形参外还需要2个形参,例如__init__(self,x,y)

3.__init__(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递进去


__str__()方法:

class Car:

    def __init__(self, newWheelNum, newColor):

        self.wheelNum = newWheelNum

        self.color = newColor

    def __str__(self):

        msg = "嘿。。。我的颜色是" + self.color + "我有" + str(self.wheelNum) + "个轮胎..."

        return msg

    def move(self):

        print('车在跑,目标:夏威夷')

BMW = Car(4, "白色")

print(BMW)

你可能感兴趣的:(浅谈面向对象)