面向对象的编程产生的历史原因:由于面向过程编程在构造系统时,无法解决重用,维护,扩展的问题,而且逻辑过于复杂,代码晦涩难懂,因此,人们开始想能不能让计算机直接模拟现实的环境,以人类解决问题的方法,思路,习惯和步骤来设计相应的应用程序。于是,面向对象的编程思想就产生了。

面向对象的编程的主要思想是把构成问题的各个事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在解决问题的过程中经历的步骤和行为。对象作为程序的基本单位,将程序和数据封装其中,以提高程序的重用性,灵活性和可扩展性。类是创建对象的模板,一个类可以创建多个对象。对象是类的实例化。

类是抽象的,不占用存储空间;而对象具体的,占用存储空间。

面向对象有三大特性:封装,继承,多态。

如果说四大特性,就是封装,继承,多态,抽象。(Java)

封装

封装是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。简单来说,就是将一个对象共有的属性和行为抽离出来封装成一个类。

继承

继承是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。简单来说,一个类可以继承另一个类,子类可以拥有父类所有可以访问的字段和方法。

多态

多态是同一个行为具有多个不同表现形式或形态的能力。简单来说,是同一个接口,使用不同的实例而执行不同操作。多态还分为静态多态和动态多态,静态多态的体现主要是方法重载,动态多态体现在方法重写,父类接收不同子类的实例,接口接收不同实现类的实例。

抽象

抽象是一种过程,在这个过程中,数据和程序定义的形式与代表的内涵语言相似,同时隐藏了实现细节,一个概念或者想法不和任何特定的具体实例绑死。简单来说,就是把东西抽离出关键特性就是抽象。

什么是面向对象的编程思想?相关推荐

  1. 面向过程和面向对象的编程思想 复习原型 构造函数和实例对象和原型对象之间的关系

    体会面向过程和面向对象的编程思想 <!DOCTYPE html> <html lang="en"> <head><meta charset ...

  2. 200819C阶段一C++面向对象的编程思想

    目录 一.学习的知识点 作业 面向对象的编程思想 类与对象 类 二.上课没有听懂或者没有理解的地方 三.当天学习的收获 四.作业的思路.不会的地方 五.其他需要反馈的问题 六.心得体会 一.学习的知识 ...

  3. python完全支持面向对象编程思想_面向对象的编程思想和Python的继承和多态,特殊方法,引用计数...

    面向对象的编程思想和Python的类,访问和属性,继承 在上一文中我们了解到了,私有的属性的访问方式:实例名._类名__私有属性名. 一.私有的属性如何对外提供公有的取值和赋值方法呢?提供公有的方法作 ...

  4. python完全支持面向对象编程思想_面向对象的编程思想和Python的类,访问和属性,继承...

    本文将从访问限制,属性,继承,方法重写这几个方面继续介绍面向对象的编程思想和Python类的继承. 复制代码 一.访问权限: Python中在类的内部定义属性和方法,在类的外部是可以直接调用或进行访问 ...

  5. python 类和对象_面向对象的编程思想和Python的类,访问和属性,继承

    面向对象的编程思想和Python的类,类的方法和属性,实例方法这一文从面向对象的角度,介绍类的定义,类的属性和自定义方法. 本文将从访问限制,属性,继承,方法重写这几个方面继续介绍面向对象的编程思想和 ...

  6. 在ASP.NET中面向对象的编程思想

    首先,我们还是来谈一下面向对象的编程思想吧.我想现在的主流编程思想无非两种:结构与面向对象.以前,在ASP中我们完全采用的是结构化思想.现在,asp.net可以完全支持面向对象的编程思想,这不得不说是 ...

  7. 浅谈面向对象的编程思想:如何优雅地把大象装进冰箱?

      许多人刚学编程时,想必都听到过这样的话:"*语言是面向对象的,而***语言是面向过程的".那时的新人还懵懵懂懂,就被大牛或者书上的大牛骗去学了一种听起来很厉害的语言,然而学了半 ...

  8. 面向对象的编程思想写单片机程序——(3)学习笔记 之 程序分层、数据产生流程

    系列文章目录 面向对象的编程思想写单片机程序--(1)学习笔记 之 程序设计 面向对象的编程思想写单片机程序--(2)学习笔记 之 怎么抽象出结构体 面向对象的编程思想写单片机程序--(3)学习笔记 ...

  9. 包的概念以及面向对象的编程思想

    上一篇:无头双向链表的实现 一. 包 1. 基本概念 包 :本质上就是用文件夹来管理java文件的.是组织类的一种方式. 包是有规范的:包的命名一般全都是小写:并且一般是倒着写的. www.baidu ...

  10. Java中面向对象的编程思想

    目录 面向对象的基本概念 面向对象的编程思想 Java类 Java对象 对象与类的关系 变量的分类 方法的分类 方法的重载 对象与引用 参数传递 this关键字 static关键字 代码块 小总结 包 ...

最新文章

  1. Xcode中Objc动态调用方法同时避免警告的几个办法
  2. 从oracle中读取图片,从oracle数据库中读取图片,在jsp?
  3. Oracle递归查询
  4. $(document).ready() $(window).load 及js的window.onload
  5. java杰森_java - 杰森格式错误,当他已经得到一个数组时询问 - 堆栈内存溢出
  6. scrapy导入配置文件setting.py,防止运行时找不到文件
  7. Java关键字static
  8. 20191012:快速排序
  9. mysql strchr_PHP字符串函数之 strstr stristr
  10. linux 一个读写锁的使用异常导致的故障
  11. c语言编程伤心代码,C语言恶作剧代码:慎用,被打了不负责
  12. this和super分别代表什么意思
  13. 一般纳税人税额计算_一般纳税人应纳税额如何计算?
  14. 黑暗传说单机自动挂机_黑暗传说单机RPG
  15. Python解析器安装后测试打开微软商店
  16. 负面营销 —— 是饮鸩止渴还是引爆流量
  17. 2012 快速减肥 美女舒淇的懒人减肥法
  18. 大数据加工的方法,主要分为哪几种?
  19. Shiro教程,整合SpringBoot项目实战(笔记)
  20. html 中写注释吗,html 注释

热门文章

  1. weditor安装失败解决办法
  2. vuex getters、mapGetters、...mapGetters(三)
  3. 为什么Qt会有 QT_BEGIN_NAMESPACE宏
  4. 二维条码 QR code 的解码
  5. redis持久化到mysql的方案_redis实现持久化存储的两种方案
  6. 联想首次详解混合云Lenovo xCloud五大优势,如何打造智能化数字底座
  7. 英语六级复习一周600+,好吧,应各位同志要求,发出我的六级备考资料
  8. vue一键截图并上传至后台
  9. 一套完整的java web 在线答题系统
  10. NOIP2012摆花