--------- android培训、java培训、期待与您交流! ----------
面向对象编程
<1>编程设计的三问
1.做软件,写代码究竟是在做什么?软件设计的本质或者说需要解决的最本质的问题时什么?
做软件,写代码,无非就是要把现实生活中的事情通过计算机或网络来完成,但又不能完全按照现实中的事情来做,所以要把现实生活中的东西抽象到计算机程序中。要将一些事物的共性找出来加以概括和抽象。程序设计者要做的事情就是“抽象”,所以在软件设计中,最本质的东西就是“抽象”。
2.应该抽象什么?
既然任何软件开发都是在做抽象,那么就应该考虑抽象什么,如何抽象。其实很多例子可以带来启示。计算机世界的每样东西都是从现实世界中抽象出来的。
例如:文档编辑器,其实就是现实生活中的文本。
网络中的E-mail,就是现实中的信件。
网络中的BBS,就是现实中的公告板。
它们都是编程人员对现实的抽象得来的。
抽象有两种: 一种是对数据的抽象。
一种是对业务逻辑的抽象。
3.那应该以什么样的抽象为导向呢?
即在开发过程中是拿数据去包含业务逻辑,还是用业务逻辑去包含数据。这就是需要解决以哪种抽象为导向的问题。
面向过程是以过程,也就是以业务逻辑的抽象为导向的。
面向对象,是以数据抽象作为导向的,数据就是一个一个的对象,定义的类实际上是一个数据类型,而数据类型里包含方法,方法就是业务逻辑,是可以顺序执行的代码块。所以,在面向对象的编程设计中,使用数据封装了业务逻辑。
在Java中看到的只是类,Java代码就是由若干个类组成的。在Java中,对象与对象之间的数据访问时间接的,是通过接口进行的,接口隐藏了函数和数据类型的实现。
<2>面向对象的特点
面向对象的思想,最大的特点就是更客观地反映了现实世界,使变成分析,设计和实现的方法与客观世界的过程相一致。
同一类的事物会被人们进行抽象,作为一种概念存在。比如人们认识到了一个事物是汽车,就会形成一个汽车的概念。
面向对象技术从组织结构上模拟客观世界,对客观世界的对象进行抽象并将其映射到软件中,通过对象之间的相互作用来完成工作。
主要特点:
1.对象是人们对现实世界中具有某些相同特性的事物的抽象。
2.对象中包含了一定的属性和方法。
3.对象的属性用来表示其具有的相同信息。
4.对象之间的作用可以通过接口完成。(这里接口指类对外提供的public方法)
面向对象思想的优点:
1.单个对象的功能单一,简单,而多个对象各司其职,各尽所能,可以健壮地完成软件的要求。
2.弱耦合性。对象的耦合性,是对象与对象之间,对象与系统之间的联系。对象的耦合要尽可能的弱。
3.可重用性。对象的功能越简单,耦合性越弱,可重用性就越好。
4.可扩展性。当系统中加入新的对象或替换原来的对象时,系统仍然可以保持稳定。