Python 和 Java 基础对比 08 —— 面向对象

Python 和 Java 基础对比 08 —— 面向对象

一、面向对象编程(object oriented programming)

简称:OOP,是一种编程的思想。

OOP把对象当成一个程序的基本单元,一个对象包含了数据和操作数据的函数。

面向对象的出现极大的提高了编程的效率,使其编程的重用性增高

面向对象和面向过程

有一天你想吃鱼香肉丝了,怎么办呢?你有两个选择

① 自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。

② 去饭店,张开嘴:老板!来一份鱼香肉丝!

面向对象的特性

Python 和 Java 基础对比 08 —— 面向对象

① 三大特性

封装

隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。

继承

子项继承父项的某些功能,在程序中表现某种联系

多态

一个函数有多种表现形式,调用一个方法有多种形式,但是表现出的方法是不一样的。

② 五大原则(SOLID,首字母连起来)

单一职责原则SRP(Single Responsibility Principle)

类的功能要单一

开放封闭原则OCP(Open-Close Principle)

对于扩展开放,对于修改封闭

里式替换原则LSP(the Liskov Substitution Principle LSP)

子类可以替换父类出现在父类能够出现的任何地方。

依赖倒置原则DIP(the Dependency Inversion Principle DIP)

高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。

是不是说的很绕,到底怎么个依赖倒置原则?

假设,高层次的模块依赖低层次的模块?

Python 和 Java 基础对比 08 —— 面向对象

如果“倒置”呢?

Python 和 Java 基础对比 08 —— 面向对象


接口分离原则ISP(the Interface Segregation Principle ISP)

设计时采用多个与特定客户类有关的接口比采用一个通用的接口要好。比如说英雄联盟有排位赛,匹配赛,大乱斗,把这几个功能拆分成不同的接口,比在一个接口里要好的多。

>>>

无论是 Python 还是 Java,程序员天天面向对象,你说这么多程序员咋还没有对象?


分享到:


相關文章: