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

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

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

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

面向对象和面向过程

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

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

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

面向对象的特性

① 三大特性

封装

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

继承

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

多态

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

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

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

类的功能要单一

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

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

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

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

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

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

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

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

如果“倒置”呢?

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

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

>>>Python 和 Java 基础对比 07 —— breke,continue,return使用

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

python 面向对象_Python 和 Java 基础对比 08 —— 面向对象相关推荐

  1. 多重继承_Python 和 Java 基础对比 10 —— 类的封装、继承和多态

    @Python大星 一.Python 类的封装.继承和多态 封装 继承 Python 支持多父类的继承机制,所以需要注意圆括号中基类的顺序,若是基类中有相同的方法名,并且在子类使用时未指定,Pytho ...

  2. Java基础教程:面向对象编程[2]

    Java基础教程:面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default ...

  3. java基础入门-02-【面向对象】

    Java基础入门-02-[面向对象] 8.面向对象 8.1. 类和对象 8.1.1 类和对象的理解 8.1.2 类的定义 8.1.3 对象的使用 8.1.4 学生对象-练习 8.2. 对象内存图 8. ...

  4. Java基础知识(二) 面向对象的技术

    Java基础知识 面向对象的技术 1. 面向对象与面向过程有什么区别 2. 面向对象有哪些特征 3. 什么是继承 4. 组合和继承的区别 5. 多态的实现机制 6. 重载和覆盖有什么区别 7. 抽象类 ...

  5. Java基础系列五 面向对象程序设计

    Java基础系列第一章 初识Java语言 Java基础系列第二章 Java语言基础 Java基础系列第三章 Java流程控制 Java基础系列第四章 Java数组与字符串 Java基础系列第五章 面向 ...

  6. 怎么理解面向对象编程【java基础第一讲】

    面向对象编程(OOP)是什么 OOP:Object Oriented Programming.要讲面向对象我们先来理解一下面向过程的含义,如果你已经有c语言相关的开发经验可能就已经明白面向过程的意义. ...

  7. java基础学习总结——面向对象1

    目录 一.面向过程的思想和面向对象的思想 二.简单理解面向对象 三.面向对象的设计思想 四.对象和类的概念 五.如何抽象出一个类? 六.类(对象)之间的关系 七.Java与面向对象 八.为什么使用面向 ...

  8. Java基础篇:面向对象

    文章目录 学习面向对象内容的三条主线 面向过程(POP)与面向对象(OOP) 面向对象的思想概述 Java类和对象 创建Java自定义类 对象的创建和使用 对象的创建和使用:匿名对象 类的成员之一:属 ...

  9. python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...

    P82-递归函数-阶乘计算案例 #使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=facto ...

最新文章

  1. mysql设置远程访问
  2. 用java程序完成从kafka队列读取消息到sparkstreaming再从sparkstreaming里把数据导入mysql中
  3. jvm的client与server工作模式
  4. oracle中游标的使用
  5. 1-3.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之三
  6. PHP连接MySQL数据库的几种方法
  7. python对比柱状图_python 绘制分组对比柱状图
  8. 论文笔记:Deep neural networks for YouTube recommendations
  9. 老肖有话说:如期而至的Swarm新工具Crane开源解读
  10. 华为html如何自动换行,华为交换机不分页显示screen-length命令和screen-width每屏显示宽度-老肖的博客-51CTO博客,length怎么用...
  11. 微电网逆变器VF控制_SIMULINK_模型搭建详解_附加“仿真教程”
  12. 怎样描写事物的动态?
  13. 计算机二级考试是可以任选一种吗,计算机二级考试内容是什么_可以任意选择吗...
  14. DenseBox: Unifying Landmark Localization with End to End Object Detection
  15. [CF1383A]String Transformation 1
  16. JMeter元件详解之逻辑控制器
  17. 华为云设计语言_让开发者相见恨晚?!华为云软件开发云实现云上敏捷开发
  18. Async 和 Await 技术
  19. php判断星期几switch,PHP实现今天是星期几的几种写法
  20. 数字经济创新(Digital-economy-innovation)

热门文章

  1. C++实现离散余弦变换(参数为二维指针)
  2. 深搜(DFS),Image Perimeters
  3. Silverlight客户端和WCF服务器端共享类库
  4. postman-SSL证书问题-支持HTTPS请求
  5. shell的算术运算
  6. Nginx配置同一个域名同时支持http与https两种方式访问
  7. 一个通配符引起的错误
  8. linux之mktemp命令
  9. Java线程安全策略
  10. 静态路由及默认路由实验配置