面向对象总结(Python语言,算是比较全面)

版权声明:一个苦逼初学者的原创小博客。 https://blog.csdn.net/SenZendao/article/details/81748436

今天来总结一下面向对象吧,其实我之前已经总结过了,只不过在我自己的记事本(哈哈哈,对就是记事本,比较low),一会儿会分享给大家,然后说说面向对象,然后就当自己再复习一遍吧。

什么是面向对象?面向对象和面向过程有什么区别呢?
面向对象和面向过程都是解决问题的一种思路,简单举个例子吧:
我们要吃啤酒鸭!!
面向过程
1:养鸭子
2:等鸭子长大
3:杀了鸭子
4:买作料,自己做
5:然后吃 (这种过程称为面向过程,比较复杂)
面向对象
1:找一个卖啤酒鸭的人
2:给钱,交易
3:吃,然后胖几斤(对比一下是不是面向对象简单了很多呢?)

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

其实面向对象也很简单,却也很难,熟能生巧。你需要了解类和对象,要学会定义类,创建对象。

下面给大家写一个简单的类:
这里写图片描述
这里写图片描述

这样就等于把方法写到了类里面,当使用的时候直接调用就可以了。

这里还有两个魔法方法–init–,–str–。

–intit–在Jave里面叫做构造方法,但是python里面没有构造,–init–在python中是初始化
–str–,当时用print输出对象时,只要定义了此方法,就会打印这个方法返回的数据
写个简单的代码,帮助理解吧。
为了大家更好理解–str–,上下两个代码一个用了此魔法方法,一个没用,大家进行一下对比。
这里写图片描述
这里写图片描述
大家应该能看出来有什么区别。

面向对象最难理解的应该就是self(表示当前对象),如何理解self

所谓的self,可以理解为自己
可以把self当做C++中类里面的this指针一样理解,就是对象自身的意思
某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可

继承是面向对象中比较重要的概念
将共性的内容放在父类中,子类只需要关注自己特有的内容
python中所有的内容都是对象,所有的对象都直接或间接继承了object

我们如果需要创建很多类,但是每个类中都有的属性或者方法,这个时候将共性的内容放在父类中,子类只需要关注自己特有的内容python中所有的内容都是对象,这里写图片描述

就如这张图片,动物就是一个父类,猫和狗又各自是一个父类,动物都有名字颜色等等这些共同属性,所以我们呢把这些共同属性写到父类里面,然后子类进行继承就可以了,这样就方便了很多。
下面写一个猫的继承。

这里写图片描述
这里写图片描述
看代码可以看出来,我们创建了一个Bosi的对象,没有写颜色,自动继承了Cat类中的颜色,这样就是简单的继承。在类名后加括号写入你要继承的类名就可以了。

要理解的东西还有很多,比如说多态,self的理解,类属性,实例属性,类方法,实例方法,静态方法。我们还可以在子类中重写父类中的方法

总结的我自己都累了。。。。

下面简单说说类方法和静态方法吧,在文章最后我会把我的总结分享给大家,这些偏向于理论的知识,大家要多看看,熟记在心。

这里写图片描述
这里写图片描述
其实只要在方法上面加上@classmethod就是类方法了,加上@staticmethod就是静态方法了。
这里写图片描述
这里写图片描述

最后两张图中是我的总结,有多态,私有属性,类方法,属性,实例方法,属性,等等,大家看看应该都能理解了。

面向对象的东西太多了,真的不好总结啊。
生活还在继续,我们不能停下努力的脚步。
加油!!!
写的不叫偏简,如果有写的不好的地方或者什么意见,欢迎大家和讨论。

猜你喜欢

转载自blog.csdn.net/SenZendao/article/details/81748436
今日推荐