day08_面向对象的基本概念

面向对象思想

Java语言是一种面向对象的程序设计语言,而面向对象思想(OOP)是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性行为

  • 面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。
  • 它区别于面向过程思想(POP),强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。

面向对象与面向过程的区别

面向过程POP: Process-Oriented Programming

  • 以函数(方法)为最小单位
  • 数据独立于函数之外
  • 以过程,步骤为主,考虑怎么做

面向对象:OOP: Object Oriented Programming

  • 以类/对象为最小单位,类包括:数据+方法
  • 以对象(谁)为主,考虑谁来做,谁能做
  • 面向对象仍然包含面向过程,只不过关注点变了,关注谁来做

使用面向对象编程思想开发系统,在现代开发中会将面向对象贯穿整个过程,一般包括:OOA/OOD/OOP:

  • OOA:面向对象分析(Object-Oriented Analysis)
  • OOD:面向对象设计(Object-Oriented Design)
  • OOP:面向对象编程(Object-Oriented Programming)

面向过程和面向对象有什么关系呢?面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法。它考虑的是实际地实现。一般的面向过程是从上往下步步求精。面向对象主要是把事物给对象化,对象包括属性与行为。当程序规模不是很大时,面向过程的方法还会体现出一种优势。因为程序的流程很清楚,按着模块与函数的方法可以很好的组织。但对于复杂而庞大的系统来说,面向过程显得就很无力了。

面向过程程序的不足

最大的不足:整个系统各个组成部分之间『耦合』太严重。

  • 从开发角度来说:对任何一个细微的地方做修改、调整、升级都会不可避免的影响到其他部分。

  • 从运行角度来说:整个系统中有任何一个数据发生了变化,相关的很多部分都要重新运算,非常浪费性能。

本质

从面相过程的思想发展到面向对象的思想根本原因就是因为随着时代、市场等方方面面的发展,要求程序员编写更加复杂的程序,设计更加庞大的系统。由非常多组成部分有机结合在一起的系统是面向过程代码无法容纳的。

面向对象三大特征

面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂的事情简单化,并将我们从执行者变成了指挥者。面向对象的语言中,包含了三大基本特征,即

  • 封装
  • 继承
  • 多态

任何一门面向对象的编程语言都具备以上三大特征,例如:python、C#、java 等。

你可能感兴趣的:(#,java)